Tabela de Conteúdos



2.3.3 Acesso 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 e 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.

fribeiro@laptop:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/fribeiro/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/fribeiro/.ssh/id_rsa.
Your public key has been saved in /home/fribeiro/.ssh/id_rsa.pub.
The key fingerprint is:
52:70:59:ce:62:6f:3e:3b:58:e3:ed:b5:35:3c:76:9f fribeiro@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 permanecer 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.

fribeiro@laptop:~$ ssh-copy-id fribeiro@192.168.1.100
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
fribeiro@192.168.1.100`s password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'fribeiro@192.168.1.100'"
and check to make sure that only the key(s) you wanted were added.

A restante configuração é efetuada no sistema remoto. Em primeiro lugar deveremos aceder remotamente, o que por agora ainda requer a passowrd:

fribieiro@laptop:~# ssh fribeiro@192.168.1.100
fribeiro@192.168.1.100`s password:

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.
fribeiro@server:~$

Opção: activar logins de root

Com esta configuração é seguro ativar os logins de root 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:

#[...]

# Authentication:
LoginGraceTime 120
# PermitRootLogin prohibit-password
PermitRootLogin without-password
StrictModes yes

#[...]

Verificar o ficheiro de configuração:

root@server:~# sshd -t
root@server:~#

Reiniciar o serviço:

root@server:~# systemctl restart ssh

Verificação

Caso a configuração esteja correta, será possível aceder ao sistema remoto sem que seja pedida a password:

fribeiro@laptop:~$ ssh 192.168.1.100

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.
fribeiro@server:~$

Referências