SSH Agent Forwarding を用いる際に微妙にハマったところ

SSH Agent Forwarding

SSH Agent Forwarding とは、多段で SSH 接続をする場合に秘密鍵を中継場所に置かないようにする手法です。それを実現するために ssh-agent という機能を用います。ssh-agentSSH Agent Forwarding とは直接関係はない技術です。

ssh-agent については以下の記事が大変参考になりました。

ハマったところ

SSH Agent Forwarding を用いる際に微妙にハマったところを書きます。なお、以下の全ての内容において、次のような多段の SSH 接続をするものとします。SSH の認証は全て鍵によるものとします。

[ホスト A] ----- (SSH 接続) -----> [ホスト B] ----- (SSH 接続) -----> [ホスト C] ----- (SSH 接続) -----> [ホスト D]

1. ssh-agent での鍵の登録はどこのホストですればいいのか?

  • ホスト A でのみ登録すればいいです

2. ~/.ssh/config に書く ForwardAgent yes はどこのホストで書けばいいのか?

  • ホスト A の ~/.ssh/config でのみ書けばいいです

3. ssh-agent に登録した鍵を ~/.ssh/config で呼び出すにはどういうふうに記述をしたらいいのか?

  • 何も書かないでいいです
  • いい感じに適切な鍵を呼んでくれます

4. /etc/ssh/sshd_config に書く AllowAgentForwarding yes はどこのホストで書けばいいのか?

  • ホスト B および ホスト C で書きます

5. ホスト A~/.ssh/config は具体的にどのようになるか?

Host foobar
  HostName barfoo
  User hogehoge
  ForwardAgent yes

6. ホスト B および ホスト C~/.ssh/config は具体的にどのようになるか?

Host foofoo
  HostName barbar
  User fugafuga

7. 設定内容を変えたけど反映されない!

  • sshd を再起動しましょう
  • いったんシェルから抜けて入り直しましょう*1

*1:source コマンドを用いてもよいです

Powered by はてなブログ