PuTTYについて



●PUTTYのインストール

 PuTTYごった煮版から、最新版をダウンロードしてください。
 PuTTYは、さまざまな文字コードに対応し、また、SSHもプロトコル1、2に対応しています。
 インストールが完了すると、「スタート」ー「すべてのプログラム」ー「PuTTYごった煮版」ー「PuTTY」から起動できます。PuTTYを起動すると、下記のようなウィンドウが表示されます。

PuTTY起動画面

rsa1鍵(identity)を使用するための設定

 「接続先の指定」ー「ホスト名(またはIPアドレス)」に接続先のホスト名(またはIPアドレス)を入力します。
 「ポート」はSSHでの接続ですので、「22」を入力します。接続タイプは、「SSH」を選択します。
 左のカテゴリから、「接続」ー「SSH」を選択します。「SSH接続の設定」ー「プロトコルオプション」ー「優先するSSHプロトコルバージョン」で「1のみ」または「1」を選択します。

SSH接続の設定

 左のカテゴリから、「接続」ー「SSH」ー「認証」を選択します。
 「SSH認証の設定」ー「認証パラメータ」ー「認証のためのプライベートキーファイル」にidentityファイルの保存場所を指定します。
 例:C:\Program Files\PuTTY\identity

SSH認証の設定

 設定が完了したら設定状態を保存するため、左のカテゴリから「セッション」を選択します。「PuTTYセッションの基本設定」ー「セッションの読込、保存、削除」ー「セッション一覧」に保存したいセッション名を入力します。
 例:192.168.0.1
 入力後、「保存」をクリックすると一覧に追加されます。

PuTTYセッションの基本設定

dsa鍵(id_dsa)またはrsa鍵(id_rsa)を使用するための設定

 OpenSSHで作成した秘密鍵はPuTTYでそのまま利用することはできません。そこで、PuTTYgen(puttygen.exe)を利用して変換します。puttygen.exe を起動すると、以下のようなウィンドウが表示されます。

PuTTYgen

  ここで、「読込」ボタンを押して、id_dsaファイル(C:\Program Files\PuTTY\id_rsa)をロードします。「ファイルの種類」を「All Files」にしないと表示されません。id_dsaには、ssh-keygenで作成したときにパスフレーズをセットしているので、以下のようにパスフレーズの入力を求められます。

PuTTYgen-パスワード入力

 パスフレーズが正確に入力できたら、以下のように PuTTY用の秘密鍵が作成できたことがわかります。

PuTTYgen警告

 『「秘密鍵の保存」クリックして、PuTTY用の秘密鍵を保存しろ』とのメッセージにしたがって、ファイルに保存します。

PuTTYgen保存

 「秘密鍵の保存」クリックし、秘密鍵をファイルに保存します。 保存するファイル名をid_dsaと指定するとid_dsa.ppkというファイルが作成されます(C:\Program Files\PuTTY\id_dsa.ppk)。 これで、秘密鍵ができたので SSHクライアントであるPuTTYを起動します。

 上記、「SSH接続の設定」ー「プロトコルオプション」ー「優先するSSHプロトコルバージョン」で「2」または「2のみ」を選択します。
 また、「SSH認証の設定」ー「認証パラメータ」ー「認証のためのプライベートキーファイル」にid_dsa.ppkファイルの保存場所を指定します。
 例:C:\Program Files\PuTTY\id_dsa.ppk

PuTTYでログイン

 接続は、「セッションの一覧」から接続したいセッションをダブルクリックするか、または、接続したいセッションを選択し、「開く」をクリックで出来ます。始めてサーバーに接続する場合は、「PuTTY Security Alert」の警告メッセージが表示されます(2回目以降の接続時には表示されません。)が、「はい」をクリックしてください。SSH接続を開始する時にはサーバーは公開鍵を送信してくるのですがこのデータを保存し、接続処理を続けるかを確認するための表示です。一度保存した公開鍵は2回目以降SSHサーバーが本物かどうか証明するために利用されます。
 「はい」をクリックすると、下記のウィンドウが表示されます(172.16.1.21に接続した場合)。

ログイン前

 login as:の後にログインするユーザ名(例:user1)を入力し、続けてログインするユーザのパスワードを入力します(この時パスワードを入力しても画面上には何も出力されませんが正しくパスワードを入力しEnterキーを押してください)。

パスワード入力

 ユーザとパスワードが正しければ、[user1@station8 user1]$のようなシェルプロンプトが表示されます。後はコマンドを実行してリモートホストでの作業が行えます。

ログイン後

●PuTTYを使いやすい用にカスタマイズする

 ここではPuTTYを便利に使う為の設定項目を紹介します。PuTTYを起動した後、カテゴリに表示されている項目ごとに設定を変更・カスタマイズする事ができます。

ウインドウサイズの設定

 「PuTTYのウィンドウの設定」ー「ウィンドウサイズの指定」の「桁」や「行」、「PuTTYのウィンドウの設定」ー「ウィンドウ内のスクロールバックの管理」の「スクロールバックの行数」は設定した方がいいでしょう。

PuTTYのウィンドウの設定

カーソルやフォント等の設定

 「PuTTYのウィンドウの外観の設定」ー「カーソルの使用の調整」の「カーソルの外観」や「カーソルの点滅」、「PuTTYのウィンドウの外観の設定」ー「フォントの設定」

PuTTYのウィンドウの外観の設定

文字セット変換の設定

 「文字セット変換の設定」ー「文字コードの変換」

文字セット変換の設定

接続の設定

 「接続の設定」ー「セッションをアクティブに保つためのnullパケットの送信」
 リモートホストとコネクションを張る(通信を開始する)と一定時間データの送受信が場合、リモートホスト側から強制切断されてしまうことがあります。そこで、Keepalivesの値を設定するとリモートホストへ、定期的にnullデータを送信しアイドル時の切断を防ぐことが出来ます。値としては、30〜60秒で十分です。

接続の設定

サーバーに送られるデータの設定

 「ログインの詳細」ー「自動ログインのユーザー名」にユーザー名を記入すると、ログイン時にユーザー名の入力を省略することが出来ます。

データ

●Puttyの設定のエクスポートする

 どうやらPuttyは設定をファイルではなく全てレジストリに書き込むようになっているようです。保存されたセッションについては下記に入っているのでこの部分をエクスポートして、移行先にインポートすればセッションの情報をごっそりと移動することができます。
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\(保存した名前)
 簡単にバックアップしたい場合には、下記のコマンドを利用するとデスクトップにバックアップがとれます。
reg export HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions "%USERPROFILE%\デスクトップ\putty_settings.reg"
 cmd.exeから起動するなり、ファイル名を指定して実行するからでもOKです。成功すればデスクトップにputty_settings.regというレジストリのファイルができているはずです。

●VNC over SSH

 社内のファイアーウォールは、SSHを通過させる設定はされているものの、VNCを通過させる設定はされていなものがほとんどだと思われます。
 自宅サーバに接続する場合、手元でGUIを使用できると作業がはかどる場合があります。
 その場合、この方法を知っておくと意外と便利であることが実感できます。
 これまでSSHトンネルをWindows XPで利用していたときは、コマンドプロンプトで自宅サーバに接続するSSHトンネル用のバッチファイル(.cmd)を作成し実行していました。
 セキュリティが向上したためか、Windows 7ではこの方法を利用することが出来なくなってしまいました。
 そこで、PuTTYを利用しようと思い立ちました。
 インターネットで調べたところあっさりVNC over SSHを実現することが出来ました。
 まず、PuTTYでSSHトンネルを実現するための設定をします。
 PuTTYを起動し、左ペインの[接続]-[SSH]-[トンネル]を選択します。

VNC_over_SSH_01.jpg

 次に、接続する情報を入力します。
 下記は、VNCクライアントを起動するWindows 7側の接続ポートを「5911」、SSHトンネル通過後のLinuxサーバ側のポートを「5901」とした場合の設定です。
 [源ポート]に「5911」、[送り先]に「localhost:5911」と入力し、[追加]をクリックして保存します。

VNC_over_SSH_01.jpg

VNC_over_SSH_01.jpg

 左ペインで[セッション]を選択、[接続先の指定](ホスト名及びポート)を入力し、適当な名前でセッションを保存します。
 PuTTYを起動し、該当セッションが問題なく接続される事を確認します。
 PuTTYを起動したWindows 7でコマンドプロンプトを起動し、「netstat -a」を実行します。
 TCP	127.0.0.1:5911	<ホスト名>:0	LISTENING
のように表示されていれば、SSHトンネルの設定は問題ありません。
 あとはVNCクライアントを起動し、「localhost:5911」と入力するとSSHトンネル経由でVNCを接続することが出きるようになります。
 接続後、コマンドプロンプトで確認すると下記のように接続が確立している事が分かります。
 TCP	127.0.0.1:5911	<ホスト名>:59341	ESTABLISHED
 (ポート番号「59341」は接続するタイミングでいろいろ変動します。)