yuu_nkjm blog


2011-11-29(Tue) 編集

[ssh][PuTTY] sshの多段の認証転送

状況

秘密鍵の置き場所に迷ったときは認証の転送が便利というお話し.

クライアントPC => ゲートウェイサーバ(鍵認証のみ) => アクセス対象サーバ(鍵認証のみ)

といった経路でしか管理したいサーバにアクセスできない(下図)とき,ゲートウェイサーバに秘密鍵を置くしかないの?となることがある.そんなときは,認証の転送が便利.下図のプライベートサーバ,公開サーバ2において,また認証の転送を行いたいときは「もう一段階先への転送」で書いた内容を実行する必要がある.

画像の説明

認証鍵の転送

SSHクライアントにPuTTYを使っている場合,SSH->SSH認証の設定->認証パラメータの「エージェントフォワーディングを認める」にチェックを入れる.以下のページに詳細がよくまとまっている.

Pageantssh-agent と同じく、認証鍵の転送機能を持っています。これを利用すれば、たとえログイン先のサーバーに認証鍵がなくても、ローカルにある認証鍵を使用してログイン先からさらに別のサーバーに SSH 接続を確立できます。サーバーに秘密鍵を保存する必要が無いため、秘密鍵の流出の危険を大幅に削減できます。

Pageant による認証鍵の転送は以下の手順で利用できます。

  1. Pageant を起動し、必要な認証鍵を登録する。
  2. PuTTY を起動する。
  3. 普通に SSH ログインするのですが、その際に [接続]-[SSH]-[認証] の「エージェントフォワーディングを認める」にチェックを入れておきます。もしくは、起動時に "-A" オプションを指定する方法もあります。
  4. ログイン先で、さらに "ssh <ユーザー名>@<ホスト名>" などとしてさらに別のホストにログインします。
  5. Pageant に必要な認証鍵が登録されていれば、正常にログインできるはずです。

なお、Pageant で認証鍵の転送機能を利用するためには、ログイン先の SSH サーバーが OpenSSH でなければなりません。本家 SSHOpenSSH とは別のプロトコルを使用しており、そちらは Pageant ではサポートされていません。

画像の説明

もう一段階先への転送

SSHサーバを渡り歩くには,~/.ssh/configに"ForwardAgent yes"を追加する必要がある.

cat ~/.ssh/config
# "ForwardAgent yes"がなかったら,以下を実行.
echo "ForwardAgent yes">>~/.ssh/config

ssh の agent forwarding | 自作自演がすごく分かりやすかった.


トップ «前の日(11-28) 最新 次の日(11-30)» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|