私はMac OS X Lionを使用して、毎日SSH経由でリモートホストにログインしています。リモート認証にSSHキーペアを使用し、すべてのホストのログインフレーズを自動化する必要はありませんが、端末がSSH秘密キーにアクセスするためのパスフレーズを要求するのは依然として非常に面倒です。
セキュリティ上の理由から、SSH秘密鍵にアクセスするためのパスフレーズが必要だと思います。端末が起動時に一度だけフレーズを要求し、それを記憶し、その後のSSHセッションで秘密鍵を自動的に使用する方法はありますか?
keychain
Gentoo Linuxで正常に動作するというスクリプトがあります。しかし、私はMac OS X Lionでそれを理解することはありません。さらに重要なこと、のようなので、多くの威圧的な用語は、ありますssh-agent
、ssh-add
。それらのSSHツールキットに関するさまざまな資料を読み、いらいらする実験を行った後、私はさらに混乱しました。
そのため、StackExchangeに来て、次の質問に関するアドバイスを探しました。
- どのようなものがあり
ssh-agent
、ssh-add
、keychain
、Keychain Access.app
そしてどのように彼らは互いに相互作用? - ログイン時に一度、SSH秘密鍵のパスフレーズを入力し、後のSSHセッション作成で自由に使用するにはどうすればよいですか?
- エラー...何が問題なの
Keychain Access.app
ですか?以前のようにSSHフレーズを保存しません。
ここで行ったことをリストします。うまくいけば、私が逃したステップについての手がかりがあります。
手順1. MacでSSHキーペアを作成します。
$ ssh-keygen -t rsa -C "me@email.com"
# Set a passphrase for accessing the private key.
ステップ2. SSH公開鍵をリモートホストにコピーします。例として、Macのローカルホストにキーをコピーします。
$ ssh-copy-id USER@localhost
# Enter the login password for USER at localhost, not my SSH passphrase
ステップ3.次に、SSHキーペア認証を介して、リモートホスト(ここではlocalhost)への接続を試みます。
$ ssh USER@locahost
Enter passphrase for key '/Users/YOUR_ACCOUNT/.ssh/id_rsa':
# Enter my SSH passphrase, not the login password.
手順4.リモートホストからログアウトし、接続を再試行します。くそー、ターミナルは再びSSHフレーズを要求します。
よくある質問は、「ssh-agentはMacでうまく機能しますか?」です。率直に言って、私はこれらのことで何が起こっているのか分かりません。ここにいくつかの実行結果を示します。
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(EMPTY)
$ ssh-add -l
Could not open a connection to your authentication agent.
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-Z54zXukQiP/agent.26769; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26770; export SSH_AGENT_PID;
echo Agent pid 26770;
$ ssh-add -l
Could not open a connection to your authentication agent.
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(STILL EMPTY)
$ ssh-agent # Oh no, anther ssh-agent with different PID
SSH_AUTH_SOCK=/tmp/ssh-cx0B4FUX8B/agent.26898; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26899; export SSH_AGENT_PID;
echo Agent pid 26899;
$ ps -e | grep -i ssh
26769 ?? 0:00.03 ssh-agent
26899 ?? 0:00.02 ssh-agent
どんなフィードバックも歓迎します。ありがとう!