Bom, sempre estou procurando novas configuracoes que facilitem minha vida na hora de acessar meus servidores linux o ruim de tudo e ficar digitando senha toda vez que preciso acesso, este tudo tem a intersao de orintar e encinar a fazer com chaves publicas com uso do putty. Sorte que podemos contar com uma opção muito útil do SSH, a conexão via chave pública/privada. Vamos por a mao na massa
Obs.: Para entender como funcionam as chaves públicas/privadas, sugiro a leitura deste artigo:
Criptografia de chave pública « Wikipedia
O primeiro passo é gerarmos as chaves. Este procedimento deve ser feito na máquina de onde será feita a conexão (cliente), para isso, vamos utilizar o seguinte comando:
Obs.: Usarei como exemplo o usuário "joao" para o cliente e "joao_servidor" para o servidor.
# ssh-keygen
Obs.: O tipo padrão para a criação da chave é RSA, porém, caso queira especificar o tipo da chave, basta adicionar ao comando o parâmetro: -t rsa
Depois de executar o comando acima, você será perguntado sobre o nome do arquivo, no nosso caso, deixaremos o padrão (/home/joao/.ssh/id_rsa) e vamos pressionar ENTER.
Logo depois você terá a opção de adicionar uma passphrase à sua chave, porém, toda vez que for conectar, será necessário digitar essa senha. No nosso caso, deixarei em branco para não precisar usar senha, sendo assim, basta pressionar ENTER duas vezes.
Pronto. Sua chave já foi gerada, para conferir basta entrar no diretório que escolhemos para salvar a chave (/home/joao/.ssh/id_rsa) e verificar se os arquivos "id_rsa" e "id_rsa.pub" foram criados.
Agora o que temos que fazer é passar a chave pública para o servidor SSH, porém, antes de mais nada, devemos verificar se no servidor há a pasta ".ssh" (o " . " indica que é um diretório oculto) dentro da HOME do usuário que usaremos para logar (no caso: joao_servidor), se não existir, devemos criar.
Depois do diretório criado, passamos o arquivo com o seguinte comando:
# scp /home/joao/.ssh/id_rsa.pub joao_servidor@server:/home/joao_servidor/.ssh
Pronto, o que tínhamos que fazer na máquina cliente já terminamos, agora devemos entrar no servidor SSH para terminarmos a configuração.
Já logado no servidor SSH, jogaremos nossa chave pública para o arquivo de autenticação:
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Pronto, agora podemos voltar para a máquina cliente e testarmos a conexão com o seguinte comando:
# ssh joao_servidor@servidor
Se tudo correr bem, você logará no servidor sem ter que digitar a senha.
Agora vamos configurar o acesso SSH por chaves no Windows usando o nosso grande amigo PuTTY (cliente para conexões SSH e muito mais) e como na dica anterior, usaremos o usuário "joao_servidor" para teste.
Nesta dica utilizaremos duas ferramentas bem leves, o PuTTY (para fazer a conexão) e o PuTTYgen (para gerar as chaves).
O primeiro passo é gerar as nossas chaves usando o PuTTYgen. Quando executá-lo, será apresentado uma janela semelhante a esta:
Clique em "Generate" para iniciar a geração da chave e depois fique movimentando o mouse sobre o campo "Key", pois a criação da chave será baseada na posição dele:
Após gerar a chave, em "Key Comment" você pode adicionar um cometário, geralmente coloco o meu e-mail. E em "Key passfrase" você pode adicionar uma senha à sua chave, porém toda vez que for se conectar ao servidor será necessário digitar esta senha.
Para salvar a chave pública, você pode clicar em "Save public key", mas eu prefiro copiar o código gerado em "Public key for pasting into OpenSSH authorized_keys file" e colar em um novo documento de texto, assim, quando precisar da chave, basta copiar o código novamente.
Para salvar a chave privada, clique em "Save private key", escolha o local e o nome do arquivo e clique em "Salvar".
* Lembrando: Este arquivo deve ficar muito bem guardado para que ninguém tenha acesso, pois quem tiver acesso a este arquivo, poderá logar no servidor tranquilamente.
Obs.: Caso não tenha digitado nenhuma passphrase, você será questionado se realmente deseja salvar a chave sem nenhuma proteção, basta clicar em "Sim".
Pronto, agora que temos o par de chaves, vamos configurar o servidor.
Configurando o servidor
Acesse o servidor normalmente via SSH e já conectado, vamos verificar se o diretório ".ssh" (o " . " indica que é um diretório oculto) já existe, caso não, basta criá-la com o seguinte comando:
# mkdir /home/joao_servidor/.ssh
Agora vamos entrar no diretório:
# cd /home/joao_servidor/.ssh
E editar o aquivo "authorized_keys":
Obs.: Caso não exista, basta criar.
# pico authorized_keys
Certifique-se de que o arquivo está no diretório /home/joao_servidor/.ssh.
Devemos adicionar a chave que copiamos do PuTTYgen ao final do arquivo. Depois de adicionar, basta salvar e sair, agora você pode desconectar do servidor.
O último passo é editarmos o PuTTY para que o mesmo consiga trocar as chaves com o servidor, para isso, abra o PuTTY. Será exibido uma janela semelhante a essa:
No campo "Host Name", digite o nome do servidor ou o IP, e em "Port" digite a porta usada pelo SSH (padrão 22). Preencha o campo "Saved Sessions" com o nome que queira dar ao seu servidor e clique em "Save".
Note que abaixo de "Default Settings", ficou o seu servidor:
Depois em "Category", clique em "Data" e no campo "Auto-login username", digite o usuário que deseja utilizar para login:
Logo abaixo clique em "SSH", depois em "Auth". No campo "Private key file for authentication" clique em "Browse" e selecione a sua chave privada.
Volte ao menu "Session" e clique novamente em "Save" para salvar as configurações e depois clique em "Open".
Pronto, agora todas as vezes que quiser conectar-se ao servidor, basta abrir o PuTTY e clicar duas vezes sobre o nome do seu servidor que você conectará a ele sem ter que digitar senha.
Se tudo correr bem você logará no servidor sem ter que digitar a senha.
Lembrando que devemos tomar muito cuidado com qual usuário conectamos, pois acessos errados à pessoas erradas podem causar muita dor de cabeça.
** NUNCA utilize esse método de autenticação com o usuário root, pois se alguém mal intencionado tiver acesso à chave privada, você estará "lascado".
Uma boa dica de segurança é: depois de testar a autenticação por chaves, desabilitar o acesso de root via SSH e desabilitar também o acesso com senha, assim você somente conseguirá acessar o servidor com a sua chave.
Testado no CentOS e Windows 7 com PuTTY.
Fonte: Viva o Linux e autor Jeferson R. Costa
Obs.: Para entender como funcionam as chaves públicas/privadas, sugiro a leitura deste artigo:
Criptografia de chave pública « Wikipedia
O primeiro passo é gerarmos as chaves. Este procedimento deve ser feito na máquina de onde será feita a conexão (cliente), para isso, vamos utilizar o seguinte comando:
Obs.: Usarei como exemplo o usuário "joao" para o cliente e "joao_servidor" para o servidor.
# ssh-keygen
Obs.: O tipo padrão para a criação da chave é RSA, porém, caso queira especificar o tipo da chave, basta adicionar ao comando o parâmetro: -t rsa
Depois de executar o comando acima, você será perguntado sobre o nome do arquivo, no nosso caso, deixaremos o padrão (/home/joao/.ssh/id_rsa) e vamos pressionar ENTER.
Logo depois você terá a opção de adicionar uma passphrase à sua chave, porém, toda vez que for conectar, será necessário digitar essa senha. No nosso caso, deixarei em branco para não precisar usar senha, sendo assim, basta pressionar ENTER duas vezes.
Pronto. Sua chave já foi gerada, para conferir basta entrar no diretório que escolhemos para salvar a chave (/home/joao/.ssh/id_rsa) e verificar se os arquivos "id_rsa" e "id_rsa.pub" foram criados.
Agora o que temos que fazer é passar a chave pública para o servidor SSH, porém, antes de mais nada, devemos verificar se no servidor há a pasta ".ssh" (o " . " indica que é um diretório oculto) dentro da HOME do usuário que usaremos para logar (no caso: joao_servidor), se não existir, devemos criar.
Depois do diretório criado, passamos o arquivo com o seguinte comando:
# scp /home/joao/.ssh/id_rsa.pub joao_servidor@server:/home/joao_servidor/.ssh
Pronto, o que tínhamos que fazer na máquina cliente já terminamos, agora devemos entrar no servidor SSH para terminarmos a configuração.
Já logado no servidor SSH, jogaremos nossa chave pública para o arquivo de autenticação:
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Pronto, agora podemos voltar para a máquina cliente e testarmos a conexão com o seguinte comando:
# ssh joao_servidor@servidor
Se tudo correr bem, você logará no servidor sem ter que digitar a senha.
Agora vamos configurar o acesso SSH por chaves no Windows usando o nosso grande amigo PuTTY (cliente para conexões SSH e muito mais) e como na dica anterior, usaremos o usuário "joao_servidor" para teste.
Nesta dica utilizaremos duas ferramentas bem leves, o PuTTY (para fazer a conexão) e o PuTTYgen (para gerar as chaves).
O primeiro passo é gerar as nossas chaves usando o PuTTYgen. Quando executá-lo, será apresentado uma janela semelhante a esta:
Clique em "Generate" para iniciar a geração da chave e depois fique movimentando o mouse sobre o campo "Key", pois a criação da chave será baseada na posição dele:
Após gerar a chave, em "Key Comment" você pode adicionar um cometário, geralmente coloco o meu e-mail. E em "Key passfrase" você pode adicionar uma senha à sua chave, porém toda vez que for se conectar ao servidor será necessário digitar esta senha.
Para salvar a chave pública, você pode clicar em "Save public key", mas eu prefiro copiar o código gerado em "Public key for pasting into OpenSSH authorized_keys file" e colar em um novo documento de texto, assim, quando precisar da chave, basta copiar o código novamente.
Para salvar a chave privada, clique em "Save private key", escolha o local e o nome do arquivo e clique em "Salvar".
* Lembrando: Este arquivo deve ficar muito bem guardado para que ninguém tenha acesso, pois quem tiver acesso a este arquivo, poderá logar no servidor tranquilamente.
Obs.: Caso não tenha digitado nenhuma passphrase, você será questionado se realmente deseja salvar a chave sem nenhuma proteção, basta clicar em "Sim".
Pronto, agora que temos o par de chaves, vamos configurar o servidor.
Configurando o servidor
Acesse o servidor normalmente via SSH e já conectado, vamos verificar se o diretório ".ssh" (o " . " indica que é um diretório oculto) já existe, caso não, basta criá-la com o seguinte comando:
# mkdir /home/joao_servidor/.ssh
Agora vamos entrar no diretório:
# cd /home/joao_servidor/.ssh
E editar o aquivo "authorized_keys":
Obs.: Caso não exista, basta criar.
# pico authorized_keys
Certifique-se de que o arquivo está no diretório /home/joao_servidor/.ssh.
Devemos adicionar a chave que copiamos do PuTTYgen ao final do arquivo. Depois de adicionar, basta salvar e sair, agora você pode desconectar do servidor.
O último passo é editarmos o PuTTY para que o mesmo consiga trocar as chaves com o servidor, para isso, abra o PuTTY. Será exibido uma janela semelhante a essa:
No campo "Host Name", digite o nome do servidor ou o IP, e em "Port" digite a porta usada pelo SSH (padrão 22). Preencha o campo "Saved Sessions" com o nome que queira dar ao seu servidor e clique em "Save".
Note que abaixo de "Default Settings", ficou o seu servidor:
Depois em "Category", clique em "Data" e no campo "Auto-login username", digite o usuário que deseja utilizar para login:
Logo abaixo clique em "SSH", depois em "Auth". No campo "Private key file for authentication" clique em "Browse" e selecione a sua chave privada.
Volte ao menu "Session" e clique novamente em "Save" para salvar as configurações e depois clique em "Open".
Pronto, agora todas as vezes que quiser conectar-se ao servidor, basta abrir o PuTTY e clicar duas vezes sobre o nome do seu servidor que você conectará a ele sem ter que digitar senha.
Se tudo correr bem você logará no servidor sem ter que digitar a senha.
Lembrando que devemos tomar muito cuidado com qual usuário conectamos, pois acessos errados à pessoas erradas podem causar muita dor de cabeça.
** NUNCA utilize esse método de autenticação com o usuário root, pois se alguém mal intencionado tiver acesso à chave privada, você estará "lascado".
Uma boa dica de segurança é: depois de testar a autenticação por chaves, desabilitar o acesso de root via SSH e desabilitar também o acesso com senha, assim você somente conseguirá acessar o servidor com a sua chave.
Testado no CentOS e Windows 7 com PuTTY.
Fonte: Viva o Linux e autor Jeferson R. Costa