web-dev-qa-db-ja.com

ssh addダイアログボックスを手動でトリガーする方法は?

コマンドラインでssh-addを実行すると、システム上でsshキーが正しくロック解除されなくなりました(Ubuntu 11.10 with Unity)。 ssh-addを実行した後でも、サーバーにsshすると、ダイアログボックスが表示され、sshキーのパスフレーズを尋ねられます。その後、物事は期待どおりに機能します。

ssh-agentが実行されています。最初にログインしたとき:

$ ps -ef | grep ssh-agent
mish      1853  1818  0 18:55 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session --session=ubuntu

サーバーにsshしなくてもsshキーを適切にロック解除するにはどうすればよいですか? (手動でsshキーダイアログウィンドウをトリガーしても解決策としては問題ありませんが、その方法はわかりません)。

私の使用例は、 tmuxinator を使用し、複数のssh接続をセットアップすることです。だから私はsshキーのロックを解除したい。そうしないと、すべてのsshキーダイアログボックスがすべてポップアップし、パスフレーズを複数回入力する必要があります。または、tmuxinatorを起動する前にどこかでsshできますが、ここでは接続が遅いため、摩擦が増えます。そこで、最初にどこかでsshすることなく、tmuxinatorを起動する前にsshキーのロックを解除したいと思います。

編集

ログアウトしてから再度ログインしてみました。それから私はやった:

$ env | grep -i ssh
SSH_AGENT_PID=8693
SSH_AUTH_SOCK=/tmp/keyring-Ho4cfE/ssh
$ ssh-add -D
All identities removed.
$ ssh-add -l
1024 b8:12:34:56[...]:19 name@computer (DSA)
$ ssh-add
Enter passphrase for /home/name/.ssh/id_dsa: 
Identity added: /home/name/.ssh/id_dsa (/home/mish/.ssh/id_dsa)
$ ssh-add -l
1024 b8:12:34:56[...]:19 /home/name/.ssh/id_dsa (DSA)
1024 b8:12:34:56[...]:19 name@computer (DSA)
0 mish@mishtop:~$ ssh server

その時点で、GUIダイアログボックスでパスフレーズを再度求められます。イライラする...

「すべてのIDが削除された」後、ssh-add -lがまだIDを表示していることも興味深いです。それは私を混乱させます。また、実行中のssh-agentは1つだけのようです。

編集2:

ランチパッドでこれに関するバグを見つけました: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/841672

しかし、この質問は、なぜ機能しなかったのかを尋ねるのではなく、回避策を見つけることに関するものだったので、この質問が耐えられることを願っています。

編集3:

/etc/ssh/ssh_configで異常なことはありません-触れたことはありません。私は~/.ssh/configを持っていますが、それは単なるポートとユーザー名です。

ダイアログがポップアップしたときにどのプロセスが実行されているかを見て、それは/usr/lib/gnome-keyring/gnome-keyring-Prompt-3であり、/usr/bin/gnome-keyring-daemon --daemonize --loginによって起動されました。端末からプロンプトを起動しようとしましたが、何も起こりませんでした。まだ立ち往生しています。

6
Hamish Downer

上記の質問に対する直接的な答えではなく、コアの問題の回避策です。

Gnome-keyring ssh-agentの起動を停止します。その後、ssh-agent、ssh-add、およびsshは期待どおりに動作します。 (または、少なくとも予想どおり)。

Gnome-keyring ssh-agentの開始を停止するには:

Sudo mv /etc/xdg/autostart/gnome-keyring-ssh.desktop /etc/xdg/autostart/gnome-keyring-ssh.desktop.disabled
4
Hamish Downer

編集

これにより、sshパスワードのグラフィカルプロンプトが起動しますが、実際にはsshがsshキーを使用できるようにするプロンプトとは異なります。これを行った後でも、sshキーのパスフレーズを尋ねるGUIプロンプトが表示されます:/

詳細については、上記の質問の編集3を参照してください。

元の

最後にそれをトリガーする方法を見つけました。 ~/bin/gssh-addを作成し、その中に以下を入れました:

SSH_ASK_PASS=/usr/bin/ssh-askpass ssh-add

次に、実行可能にします。

chmod +x ~/bin/gssh-add

そして、Alt + F2を使用して起動します。それはgnomeダイアログボックスをトリガーします。

ターミナルからgssh-addを実行すると、gnomeダイアログボックスがトリガーされないことに注意してください。理由の詳細については、 ssh-add manページの環境セクション を参照してください。

1
Hamish Downer

または、tmuxinatorを起動する前にどこかでsshできますが、ここでは接続が遅いため、摩擦が増えます。

somewhere」はリモートである必要がないことを忘れないでください。

ssh localhost

それが私が通常行う方法です。

(その後、新しいシェルプロンプトで^Dと入力して破棄し、古いキーに戻します。余分なキーストロークを気にしないのであれば、ssh localhost trueのようなコマンドがよりきれいな代替手段です。)

もちろん、これはSSHキーを要求するシステムでのみ機能します(例:ssh-copy-idを使用した後)が、あなたの質問から、おそらくすでにそれを持っているようです。

0
Paul Whittaker