LoginSignup
64

More than 5 years have passed since last update.

keychainとssh-agentを使用しパスフレーズ無しにsshログイン

Posted at

keychainとssh-agentを組み合わせると、一度ssh秘密鍵のパスフレーズの入力後、パスフレーズの入力無しにsshログインが可能になる。

  • ssh-agentは、秘密鍵をキャッシュし、
  • keychainは、ssh-agentを管理する。

前準備

sshの秘密鍵・公開鍵の生成

$ ssh-keygen -t dsa    # 強力なパスフレーズを入力するべき

下記に秘密鍵と公開鍵が生成される。

  • ~/.ssh/id_dsa
  • ~/.ssh/id_dsa.pub

生成した公開鍵をログイン先に登録(ssh-copy-idを使用)

手動でログイン先に公開鍵を登録するのはめんどくさいので、ヘルパーコマンド(ssh-copy-id)を使用して公開鍵を登録

$ ssh-copy-id -i ~/.ssh/id_dsa.pub remote_host

keychainの設定

~/.bash_profileや~/.zshenvなどのシェルのスタートアップスクリプトに下記設定を記述

keychain --nogui --quiet ~/.ssh/id_dsa
source ~/.keychain/$HOST-sh

次回のシェル起動時には下記の入力が指示される。
keychainは、デーモン動作するのでssh秘密鍵のパスフレーズの入力は最初のシェル起動時の一回だけですむ。

Enter passphrase for /home/your_name/.ssh/id_dsa: [パスフレーズを入力]

パスフレーズ無しにsshログインできなかったときの確認事項

  • ログイン先の~/.ssh/authorized_keys に生成した公開鍵が登録されていることを確認。
  • keychainコマンドを実行し、ssh-agentが動作しているか確認。

参考

Gentoo Linux keychainガイド
http://www.gentoo.org/doc/ja/keychain-guide.xml

ssh-agent & keychain の勉強
http://www.hasta-pronto.org/2006/12/10/sshagent-keycha.html

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64