1 つのセッションで SSH 秘密鍵のパスワードを繰り返し求めるメッセージが表示されます。

1 つのセッションで SSH 秘密鍵のパスワードを繰り返し求めるメッセージが表示されます。

パスワードで保護されている共有開発サーバーにプライベートSSHキーがあります。

読み込んだ後も、ssh-agent秘密鍵のパスワードの入力を求められます。

何らかの理由でssh-add秘密鍵を入力し、パスワードプロンプトに正しく応答した後も、その後同じ秘密鍵パスワードを入力するように求められます。再びgit pullgitから複製すると、同じホスト名に同じIDファイルが使用されます。

次のようにログインしてSSH設定をロードします。

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

スクリプトを実行し、パスワードプロンプトに正しく応答します。

➜  ~ ~/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)

その後、または特定のリポジトリでcloneを実行しgit pullます。git push毎回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.

ホスト名はIdentityFile以下で構成されます。~/.ssh/config

私の項目IdentityFilegithub.comtoを明示的に設定した場合があります。~/.ssh/id_rsa~/.ssh/config

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

上記のSSH構成エントリを削除しても、永続パスワードの再要求に関連する同じ問題が引き続き発生します。

ファイル権限が正しいです。

その間、私は~ディレクトリとファイルに対するすべての権限が必要であることを確認しました。~/.ssh~/.ssh/id_rsaこのガイド:

➜  ~ 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

私は完全に困惑しています!誰もが正しい方向に私を指すことができますか?ありがとうございます!

答え1

~/init_ssh起動するエージェントは、キーをロードした直後に終了するスクリプトでのみ使用できます。

source ~/init_sshファイルまたはそれに対応するファイルを使用または挿入しますeval "$(ssh-agent -s)".profile

プロキシがロードされたら、$SSH_AUTH_SOCKソケットが必要です。

関連情報