LoginSignup
0
1

More than 3 years have passed since last update.

PuttyのPageantを使って認証鍵による多段ssh時の秘密鍵をローカルのみで管理する方法

Posted at

記事を書いた動機

AWS EC2からGitで認証鍵を用いたsshによるリモートへの操作をするときにssh-agentが必要だったのが発端です。
ssh接続時に使用しているPuttyで上手く対応したかったので調査・検証しました。

想定環境

  • Windows
  • Puttyがインストール済み
  • 認証に使用する秘密鍵をppkに変換済み

※あまり環境依存する内容ではないのでMacでも変わらないかもしれないです
 筆者はWindowsでしか確認してません

Puttyとは?

PuTTY(パティ)とは、リモートログオンターミナルクライアントソフトです。

オープンソースのPuTTYとは

Pageantとは?

PuTTYに付属のソフトウェアです。
これを使うと、サーバーへ接続するためのパスワード入力などの認証処理を、自動化することができます。

PuTTY & WinSCP による快適SSH環境の構築法

今回やりたいこと

sshでサーバーに接続して、接続先のサーバーからさらに認証鍵によるssh接続をしたい場合があると思います。

例)踏み台サーバーからさらに別サーバーにssh接続する
  Gitでsshを用いてサーバーにソースを反映させる

そういった場合の対応として一番安直な方法はサーバーに秘密鍵を配置することでしょう。
ただ、多くの場合サーバーには複数人でアクセスすることが想定され、不正なアクセスが行われるリスクへの考慮もしたいと思います。

そのような場合に、ローカルの秘密鍵を読み込んでおいてssh接続先でも使用したいということです。
Puttyを用いる場合にはPageantで実現できます。
このような手段は環境に合わせてPageant以外にもあります。

SSH エージェントフォワードで多段ログインを実現

Pageantに秘密鍵を登録する

  1. Puttyの実行ファイルが配置されているフォルダにpageant.exeがあります。 この実行ファイルでPageantが起動します。
  2. ダブルクリックして実行するとタスクトレイに常駐するので、右クリックでadd Keyを選択します。
    image.png

  3. ファイルの選択画面が表示されるので登録したい秘密鍵(.ppk)を選択します。

  4. タスクトレイのPageantアイコンを右クリックでView Keysを選択します。
    選択した秘密鍵が登録されていることが分かると思います。
    image.png
    Pageantキャプチャ.png

※pageantのプロセスの起動のたびに上記の登録が必要です

実際に多段ssh接続してみる

試したいサーバーにアクセスして別の接続先にssh接続してみてください。
なにも指定していなくても勝手に認証鍵が処理されるはずです。(Git等も同様)
ちなみにAWS EC2等では外部へssh接続する場合、ssh-agentを起動して接続のたびに認証鍵を登録する必要がありますが、この手順を用いれば不要になります。

Pageantを自動起動させる

勝手には起動してくれません。
常用するのであればスタートアップに登録しましょう。

WindowsであればC:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startuppageant.exeのショートカットファイルを作成して配置すれば良いです。
また、起動時に自動で秘密鍵を読み込むこともできます。(下記参考)

Pageantに秘密鍵をセットして自動起動する(Windows)
自動的に複数の秘密鍵を読んでPageantを開始する方法

Pageantを用いれば絶対安全??

絶対安全な手段はありません。
Pageantを用いた場合、接続元のPCメモリ上に秘密鍵が生で存在している状態になるため、不正なプログラムが実行されていれば参照される危険はあるようです。
ただし、サーバーに秘密鍵を配置するよりはるかに安全だと思います。

pageant.exe の仕組みと危険性

0
1
0

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
0
1