パスワードで保護されている共有開発サーバーにプライベートSSHキーがあります。
読み込んだ後も、ssh-agent
秘密鍵のパスワードの入力を求められます。
何らかの理由でssh-add
秘密鍵を入力し、パスワードプロンプトに正しく応答した後も、その後同じ秘密鍵パスワードを入力するように求められます。再び、git pull
gitから複製すると、同じホスト名に同じ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
私の項目IdentityFile
にgithub.com
toを明示的に設定した場合があります。~/.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
ソケットが必要です。