Learn to Live and Live to Learn

IT(たまにビジネス)に関する記事を読んで、考えて、使ってみたことをまとめる場。

多段sshする際の秘密鍵配置やパスワード入力をなくす

ssh-agentを使って、サーバ間を楽々移動する

ssh-agentとは

公開鍵認証方式による認証を行っているSSHサーバへ接続する際、秘密鍵に設定されているパスフレーズの入力を代わりにやってくれるアプリケーション
server-memo.netより

サーバをあちこち移動するとき、毎回秘密鍵を配置してパスワード入力して…とするのは面倒なんで、ssh-agentを適切に利用してローカルへの鍵配置&一回のパスワード入力で済ませる方法を紹介します。
です。

Macでの動作です。ssh-agentの起動が必要なものもあるので、ご確認ください。
ssh-agentの使い方 - Qiitaがまとまっています。

秘密鍵を登録する

まずは

$ ssh-add -l

を打って秘密鍵の登録状況を確認します。 The agent has no identities.の場合は、秘密鍵が登録されていないので

$ ssh-add ~/.ssd/id_rsa

で登録します。

agent forwardingする

agent forwardingとは、多段sshするとき認証情報を転送する機能です。
例えば、ローカルから踏み台サーバにsshして踏み台から本番サーバにsshするとき、ローカルに鍵を置いてパスワードを入力すれば、踏み台や本番には鍵もパスワードも必要なくなります。
agent forwardingは-Aオプション

$ ssh -A <domain>

でOKですが、~/.ssh/configにForwardAgent yesを記載しとくと、毎回オプションを付けなくてよくなるのでおすすめです。

Host *
ForwardAgent yes