Como configurar o ssh para que não peça senha
Você pode criar uma chave de autenticação RSA para poder fazer login em um site remoto com sua conta sem ter de digitar sua senha.
Note que uma vez feito isso, se um invasor quebrar o sistema e entrar em sua conta/site, ele também terá acesso sem senha ao site ao qual você tem acesso! Por essa rasão, isso nunca deve ser feito com o root.
- Execute
ssh-keygen(1)
na sua máquina e pressione enter quando pedir uma senha.
Isto irá gerar uma chave privada e uma chave pública. Com versões antigas do SSH, essas chaves ficarão armazenadas em~/.ssh/identity
e~/.ssh/identity.pub
; com versões novas, serão armazenadas em~/.ssh/id_ras.pub
.~/.ssh/id_ras
e~/.ssh/id_ras.pub
. - Em seguida, adicione o conteúdo do arquivo da chave pública
dentro de
~/.ssh/authorized_keys
no site remoto (o arquivo deverá ter o modo 600).
Caso você seja um(a) desenvolvedor(a) e queira acessar sistemas debian.org com essa chave, é possível fazer com que a base de dados de desenvolvedores(as) propague sua chave para todas as máquinas debian.org. Consulte a documentação do gateway LDAP.
Você deve então ser capaz de usar o ssh para fazer login no servidor remoto sem que seja solicitada uma senha.
Importante: Note que todo mundo que tiver
acesso de leitura ao arquivo da chave privada pode usá-la para
ter o acesso sem senha a um site remoto. Isso inclui qualquer
pessoa que tiver acesso de root à sua máquina local. Entretanto,
é realmente recomendado que você use uma senha para sua chave
privada se existirem outras pessoas com poder de root na sua
máquina. Você pode usar o ssh-agent(1)
e o
ssh-add(1)
para digitar sua senha somente uma vez
para todos os usos de uma chave específica em uma sessão. Você
pode carregar automaticamente todas as suas chaves no agente,
adicionando as seguintes linhas no seu arquivo
~/.xsession
:
# if use-ssh-agent is specified in /etc/X11/Xsession.options # (this is the default) then you need only the second line # eval ssh-agent ssh-add <nome-do-arquivo-da-chave-ssh>
O pacote ssh-askpass
deve estar instalado para
executar o ssh-add
sem um terminal.