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