私はLinux Mintを使用していて、ログイン時にgnome-keyringが自動的にロックを解除できなかったようです。
私の問題の症状は次のとおりです。
$ ssh-add
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)
$ git pull
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-Nmf3J3/pkcs11: No such file or directory
Gitがパスフレーズを入力せずにプッシュ/プルできるようにするにはどうすればよいですか?
Gnome-keyringとssh-agentにはいくつかの点があることに気づきましたが、それを特定することはできませんでした。
セッション中にssh-add
を実行すると、SSH/gitのパスフレーズを要求されなくなります。
問題は、各セッション中にssh-add
を実行する必要があることです。ログイン時にGnomeのキーリングをロック解除する方法が欠けているはずです。
$ export | grep GNOME
GNOME_KEYRING_CONTROL=/tmp/keyring-hjMM4V
GNOME_KEYRING_PID=1961
それは最初の編集と同じセッション中に再び起こりました。私はgit pull
を実行し、WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-hjMM4V/pkcs11: No such file or directory
を取得しました。
$ env | grep SSH
SSH_AGENT_PID=2116
SSH_AUTH_SOCK=/tmp/ssh-OACxJMBY2038/agent.2038
$ ps -fp $SSH_AGENT_PID
UID PID PPID C STIME TTY TIME CMD
eoin 2116 2038 0 09:47 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
私が最初に試すのはapt-get install ssh-askpass-gnome
です。それ以外の場合、そのパッケージ(またはいくつかの代替askpassプログラム)がインストールされていないと、キーをロック解除する必要があるときにgnomeがパスワードを要求できません。
また、DISPLAY
変数を適切に設定する必要があります。
$ echo $DISPLAY
:0.0
また、端末をどのように起動しますか?ターミナルセッションの開始方法、およびgnome-session
から継承するかどうかに問題がある可能性があります。これは、gnon-gnomeプログラムを使用してキーバインディングを設定するときに発生する可能性があります。
gnome-terminal
を使用していると仮定すると、pstree
を使用して確認できます。ここでは、正しい継承が行われていることを確認できます。
$ pgrep gnome-terminal | xargs -l1 pstree -s
init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───xmonad-x86_64-l(27139)───gnome-terminal(26036)─┬─bash(26041)
├─gnome-pty-helpe(+
├─{gnome-terminal}+
├─{gnome-terminal}+
└─{gnome-terminal}+
これに対して、このセッションではgnome-session
を継承していません。
$ pgrep gnome-terminal | xargs -l1 pstree -s
init(1)───sh(25919)───gnome-terminal(25920)─┬─bash(25927)
├─gnome-pty-helpe(25926)
├─{gnome-terminal}(25921)
├─{gnome-terminal}(25924)
└─{gnome-terminal}(25928)
また、ssh-agent
がgnome-session
によって開始されていることを確認します。
$ pgrep ssh-agent | xargs -l1 pstree -s
init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───ssh-agent(27091)
起こることが意味されているのは:
Gnomeセッションを開始すると、gnome-keyringデーモン(sshエージェントとしても機能します)の一部が開始され、そのgnomeセッション中に開始されたすべての環境が、そのsshエージェントへの連絡方法に関する情報で更新されます。グラフィカルログイン時に発行するパスワードは、デフォルトのキーリングのロックを解除するために使用されます。
Gnome-keyringをssh-agentとして使用する場合、ssh-agent
のような別のエージェントを使用する必要はありません。
Xセッションが終了すると、gnome-keyringも終了します。しかし、tmuxセッションは残ります。次に、別のgnome-keyringまたはssh-agentを開始しても、tmux
によってすでに開始されているプロセスの環境は、新しいソケットのパスで環境を更新しない限り、それらと通信できません。 。
あなたができることは:
gnome-keyring-daemon -r > ~/.gkr
新しいgnome-keyringを使用するすべてのシェルで. ~/.gkr
を実行します
Gnome-keyring-daemonが接続するDISPLAYに注意してください。
パスワードで保護されたSSHキーを恒久的に保存することに問題があると思います。
以下のリソースをご覧ください。