Acesso remoto via SSH sem password
Mais seguro do que utilizar uma password é não utilizar nenhuma password!
O acesso a um sistema remoto via ssh e sem password é possível gerando um par de chaves RSA.
Configuração
A configuração é processada em duas fases:
Numa primeira fase é gerado o par de chaves pública e privada.
Em seguida a parte pública da chave é instalada no ou nos sistemas remotos.
Configuração local
Durante a geração do par de chaves é pedida uma password para proteção das chaves. Esta password é de entrada facultativa: case seja inserida será sempre pedida ao tentar aceder ao sistema remoto. No nosso caso iremos optar por não usar a password.
root@laptop:~# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 52:70:59:ce:62:6f:3e:3b:58:e3:ed:b5:35:3c:76:9f root@laptop The key's randomart image is: +--[ RSA 2048]----+ | | | | | | | .| | S o .oo| | + + . =..+| | . + . o Boo| | o . *oEo| | . ...o | +-----------------+
No final deste processo serão gerados 2 ficheiros na diretoria ~/.ssh/: a chave publica e a chave privada.
Ficheiro | Conteúdo |
---|---|
id_rsa | A chave privada: esta chave deve permanacer no sistema local e NUNCA deverá ser partilhada ou divulgada. |
id_rsa.pub | A chave pública: esta chave deverá ser instalada nos sistemas remotos onde se pretende aceder sem password |
Configuração remota
O primeiro passo da configuração consiste em copiar a chave pública do sistema local para o sistema remoto. A chave pública será guardada no sistema remoto em ~/.ssh/authorized_keys.
root@laptop:~# ssh-copy-id root@192.168.1.100 root@192.168.1.100's password: Now try logging into the machine, with "ssh 'root@192.168.1.100'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
A restante configuração é efetuada no sistema remoto. Em primeiro lugar deveremos aceder remotamente, o que por agora ainda requer a passowrd:
root@laptop:~# ssh 192.168.1.100 root@192.168.1.100's password: Linux server 3.2.0-4-686-pae #1 SMP Debian 3.2.57-3 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Jun 9 14:12:28 2014 from laptop.home.lan root@server:~$
A configuração do lado remoto deverá ser alterada de modo a permitir logins sem passwords, ou seja, apenas com as chaves. Para isso deve substituir a opção PermitRootLogin no pela opção PermitRootLogin without-password no ficheiro /etc/ssh/sshd_config:
- /etc/ssh/sshd_config
#[...] # Authentication: LoginGraceTime 120 # PermitRootLogin no PermitRootLogin without-password StrictModes yes #[...]
Reiniciar o serviço:
root@server:~# /etc/init.d/ssh restart
Verificação
Caso a configuração esteja correta, será possível aceder ao sistema remoto sem que seja pedida a password:
root@laptop:~# ssh 192.168.1.100 Linux server 3.2.0-4-686-pae #1 SMP Debian 3.2.57-3 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Jun 9 14:50:41 2014 from laptop.home.lan root@server:~#
Referências
- Referência Debian, 6.9. O servidor de acesso remoto e utilitário (SSH) (http://www.debian.org/doc/manuals/reference/ch06.pt.html#_the_remote_access_server_and_utility_ssh)
- OpenSSH (http://www.openssh.com/)
- Debian Wiki: SSH (https://wiki.debian.org/SSH)