Como evitar digitar ssh-add toda vez

10

Eu li e segui algumas documentações online sobre como configurar um ssh-agent para que eu não precise digitar a senha toda vez que eu fizer o ssh em uma máquina remota.

No entanto, com a ajuda de ssh-agent , ainda preciso fazer ssh-add toda vez que eu reiniciar o shell. O ssh-add me pede para inserir a frase secreta para desbloquear a chave privada.

Enter passphrase for key '/home/xx/.ssh/id_rsa':

Em vez de digitar minha senha para a máquina remota, me pedem para digitar a senha da chave privada. É como sair de um purgatório e me encontrar em um inferno depois. Parece que o id_rsa é adicionado apenas temporariamente ao ssh-agent em uma sessão , porque toda vez que eu entro e digito ssh-add -l . Eu recebo:

The agent has no identities.

Posso perguntar como armazenar permanentemente a chave (id_rsa) no ssh-agent? Obrigado

EDIT: foi o que fiz com ssh-agent . Eu anexei o seguinte bloco em ~/.bash_profile

SSHAGENT=/usr/bin/ssh-agent                                                                                        
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
  eval '$SSHAGENT $SSHAGENTARGS'
  trap "kill $SSH_AGENT_PID" 0
fi
    
O
por ssgao 12.12.2013 / 20:42

3 respostas

6

Eu instalei o chaveiro.

sudo apt-get instalar chaveiro

Se você estiver executando o bash, será necessário adicionar alguns comandos ao seu .bash_profile Se você não tiver um .bash_profile, crie um em sua pasta pessoal. Adicione estas linhas:

### START-Keychain ###
# Let  re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###

No início de um dia de trabalho, vou fazer o login. Quando eu abro um terminal, serei solicitado uma vez pela minha senha. Para todos os outros novos terminais e conexões, não serei solicitado novamente a minha senha.

    
por walpha 20.02.2014 / 06:58
1

O que você está procurando é menos seguro, mas isso pode ser feito usando a autenticação de chave pública sem a necessidade do agente ssh. Uma opção mais segura é usar autenticação de chave pública com uma senha enquanto desativa a autenticação de senha no servidor ssh, mas isso não é o que você pediu. Veja o link na parte inferior desta resposta para obter instruções, se você decidir fazer isso.

Para usar o ssh sem receber nenhuma senha, você precisa gerar seu par de chaves enquanto deixa o campo de frase secreta em branco.

Para verificar se você já gerou um par de chaves, verifique os arquivos id_rsa e id_rsa.pub no seu diretório ~ / .ssh. Se eles já estiverem lá, você pode excluí-los ou movê-los para criar um novo par de chaves.

Observe que, se você excluí-los, perderá o acesso a todos os servidores ssh que estiver usando e às chaves antigas para autenticação, caso a autenticação de senha esteja desativada no servidor.

Para criar um novo par de chaves, execute o seguinte comando:

ssh-keygen -t rsa

Aceite o local padrão das chaves e deixe a frase secreta em branco.

Para fornecer sua chave pública ao servidor ssh ao qual você deseja se conectar, use o seguinte comando:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remotehost

Depois de concluir estas etapas, você poderá efetuar login no servidor remoto sem uma senha do computador que estiver usando.

Referência: link

    
por Omegamormegil 28.12.2013 / 22:49
0

Algum tempo atrás, de repente, comecei a receber uma senha para desbloquear minha chave ssh ao fazer git push . Descobriu-se que, para deixar de ser solicitada uma senha, bastava adicionar o SSH Key Agent (Agente de Chave do GNOME: Agente SSH) a Startup Applications (no meu caso - apenas para marcar a caixa de seleção):

    
por Alexey 09.05.2018 / 12:21