Como aceder remotamente a um sistema linux via SSH sem password
Contents
Mais seguro do que utilizar uma boa password é simplesmente não utilizar nenhuma password! O acesso remoto a um sistema linux 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:
# File: /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
Author Fernando Ribeiro
LastMod 2014-06-09