Acesso direto, sem senha, a servidores remotos

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Objetiva-se executar comandos no servidor a partir de uma estação sem conexão direta, conforme figura.

Estação acessando Servidor

Na estação, logado como root ou outro usuário qualquer, executaremos o comando ssh-keygen. Este comando irá gerar o par de chaves, perguntando também o arquivo que conterá a chave e a frase-chave, como no exemplo abaixo:

# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
27:76:90:70:7c:4f:5c:47:21:d1:97:4a:e1:c3:2b:49 root@nome_completo_da_estacao

No comando acima utilizamos o parâmetro "-t dsa" para indicar que as chaves que estamos criando serão do tipo dsa, utilizado como padrão pelo ssh. Em nosso exemplo utilizamos o arquivo sugerido para a gravação da chave (/root/.ssh/id_dsa).

Quanto maior a frase-chave, mais difícil será para ser quebrada e infelizmente também será mais difícil de ser lembrada, em nosso exemplo estaremos omitindo a frase-chave, o que fará com que nossa estação de gerência tenha acesso ao servidor remoto sem a necessidade de entrada de senha ou frase.

Serão criados dois arquivos em /root/.ssh/, id_dsa e id_dsa.pub. id_dsa é o arquivo no qual estará guardada sua chave privada; GUARDE ESTE ARQUIVO COMO A SUA VIDA, pois ele será o responsável por toda a segurança de nossa comunicação. Já id_dsa.pub é o arquivo da chave pública, que iremos enviar ao servidor que desejamos acessar.

Após a criação dos arquivos, precisamos enviar a chave pública ao servidor para que possamos acessá-lo. Pretendemos estabelecer a comunicação da estação de gerência com o servidor remoto através da conta root. Utilizaremos o comando scp (secure copy - cópia segura) para transmitir o arquivo para o diretório /root/.ssh do servidor remoto.

No servidor, todas as chaves públicas, têm de estar no arquivo ~/.ssh/authorized_keys.

# scp id_dsa.pub root@servidor:.ssh/authorized_keys
root@servidor's password:
id_dsa.pub           100% |
********************************************|   602       00:00 

O próximo passo será testar o acesso ao servidor através da estação de gerência, perceba que podemos executar comando diretamente no servidor com resposta na estação local.

# ssh servidor ls -la
total 223460
drwx------  13 root root      4096 Mar 25 09:28 .
drwxr-xr-x  24 root root      4096 Feb 24 09:54 ..
-rw-------   1 root root      7938 Mar 25 09:12 .bash_history
-rw-r--r--   1 root root        24 Jun 13  2005 .bash_logout
-rw-r--r--   1 root root       106 Jun 13  2005 .bash_profile
-rw-r--r--   1 root root       391 May 18  2007 .bashrc
drwx------   2 root root        76 Mar 25 11:59 .ssh
drwx------   2 root root        60 Mar 25 09:12 tmp