Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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

yyamamot
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away