Solicitações repetidas de senha da chave privada SSH em uma única sessão

0

Eu tenho uma chave SSH privada em um servidor de desenvolvimento compartilhado, que é protegido por uma senha.

Mesmo depois de carregá-lo em ssh-agent , sou solicitado novamente pela senha da chave privada

Por algum motivo, mesmo depois de eu ssh-add da chave privada e responder corretamente ao prompt de senha, eu sou solicitado subsequentemente pela mesma senha de chave privada novamente , quando eu git pull in um clone do git que usa o mesmo arquivo de identidade no mesmo nome de host.

Eu carrego minhas configurações de SSH após o login, desta forma:

➜  ~ cat ~/init_ssh 
#!/usr/bin/env bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Eu corro o script e respondo corretamente ao prompt de senha:

➜  ~ ~/init_ssh
Agent pid 11612
Enter passphrase for /home/username/.ssh/id_rsa: 
Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

Eu, então, executo git pull ou git push em um clone do repositório específico, e todas as vezes eu tenho que re-digitar minha senha SSH:

➜  repository_clone git:(master) git pull
Enter passphrase for key '/home/username/.ssh/id_rsa': 
Already up-to-date.
➜  repository_clone git:(master) git pull
Enter passphrase for key '/home/username/.ssh/id_rsa': 
Already up-to-date.

O nome do host tem um IdentityFile configurado em ~/.ssh/config

Acontece que eu tenho o IdentityFile para github.com definido explicitamente para ~/.ssh/id_rsa , no meu ~/.ssh/config :

➜  repository_clone git:(master) cat ~/.ssh/config
Host github.com
    IdentityFile ~/.ssh/id_rsa

Se eu remover a entrada de configuração SSH acima, ainda tenho o mesmo problema com a nova solicitação de senha perpétua.

As permissões dos arquivos estão corretas

Confirmei, entretanto, que todas as permissões dos diretórios ~ e ~/.ssh e do arquivo ~/.ssh/id_rsa são o que deveriam ser, de acordo com este guia :

➜  ~ ls -la ~ ~/.ssh ~/.ssh/id_rsa
-rw-------  1 username username 3326 Sep 21 16:53 /home/username/.ssh/id_rsa

/home/username:
total 220
drwxr-xr-x  13 username username  4096 Sep 27 17:11 .
drwxr-xr-x  24 root     root      4096 Sep 21 16:09 ..
# [...]

/home/username/.ssh:
total 36
drwxr-xr-x  2 username username 4096 Sep 27 17:07 .
drwxr-xr-x 13 username username 4096 Sep 27 17:11 ..
-rw-r--r--  1 username username  745 Sep 21 16:43 authorized_keys
-rw-------  1 username username  455 Sep 27 17:07 config
-rw-------  1 username username 3326 Sep 21 16:53 id_rsa
-rw-r--r--  1 username username  744 Sep 21 16:53 id_rsa.pub
-rw-r--r--  1 username username 3794 Sep 26 16:28 known_hosts

Estou totalmente perplexo! Alguém pode me apontar na direção certa? Obrigado!

    
por Daniel B. 27.09.2018 / 19:16

1 resposta

1

O agente que você inicia está disponível apenas para o script ~/init_ssh , que sai imediatamente após carregar a chave.

Use source ~/init_ssh ou coloque eval "$(ssh-agent -s)" no seu arquivo .profile ou equivalente.

Depois de carregar o agente, você deve ter $SSH_AUTH_SOCK point para um soquete.

    
por 27.09.2018 / 19:34