Como configurar chaves ssh para fazer login no meu RPi

15

Usar as teclas ssh para fazer login no seu RPi é muito mais conveniente do que digitar a senha toda vez.

É especialmente útil se você deseja fazer login a partir de scripts automatizados ou usar programas como scp ou rsync

Então, como configuro as chaves ssh para fazer login no meu RPi?

John La Rooy
fonte
Pergunta / resposta muito semelhante aqui .
Jivings

Respostas:

16

Linux

Se você nunca ouviu falar de ssh-keys antes, precisará gerar um como este

$ ssh-keygen -t dsa

Isso cria um diretório ~/.ssh/e armazena os arquivos de chave

$ ls -l .ssh/
-rw------- 1 gnibbler gnibbler 668 Aug 22  2004 .ssh/id_dsa
-rw------- 1 gnibbler gnibbler 603 Aug 22  2004 .ssh/id_dsa.pub

Você precisa copiar id_dsa.pubpara o RPi. Existe uma maneira muito fácil de fazer isso usando um script auxiliar.

$ ssh-copy-id -i ~/.ssh/id_dsa.pub [email protected]

Você precisará digitar a pisenha do usuário uma última vez

Na próxima vez que você fizer login, não será solicitada uma senha

$ ssh [email protected]
Linux raspberrypi 3.1.9+ #174 PREEMPT Sun Jul 22 19:04:28 BST 2012 armv6l

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.

Type 'startx' to launch a graphical session

Como desativo os logins de senha?

Depois de configurar os logins com base em chaves, você não precisa mais fazer login usando uma senha; você pode desativá-lo, o que é muito mais seguro.

  1. Primeiro, faça login no seu Raspberry Pi e abra /etc/ssh/sshd_configcomo root; por exemplo, corra sudo vim /etc/ssh/sshd_config.

  2. Encontre a linha que contém PasswordAuthentication; provavelmente lê #PasswordAuthentication yes.

  3. Mude esta linha para que leia

    PasswordAuthentication no

  4. Reinicie seu Raspberry Pi, ou apenas sshd.

Arch Linux

Para reiniciar sshdno Arch, execute sudo rc.d restart sshd.

Debian / Raspbian

Para reiniciar sshdem distribuições baseadas no Debian, execute sudo /etc/init.d/sshd restart.

John La Rooy
fonte
Esteja ciente de que o ssh sem senha deve ser usado apenas onde você sabe que a conexão já está segura . Caso contrário, você está correndo o risco de economizar 10 segundos.
Jivings
@Jivings Explain? As chaves são sempre mais seguras que as senhas.
Alex Chamberlain
@gnibbler Você aceitaria uma edição sobre como desativar os logins de senha?
Alex Chamberlain
@AlexChamberlain, é claro
John La Rooy
@AlexChamberlain Esta resposta diz como configurar chaves sem senha. Isso é o que eu estava me referindo
Jivings