PuTTYのインストールと設定

PuTTYは、SSHプロトコルを利用可能なリモートサーバ接続用クライントソフトです。Simon Tatham氏を中心とするイギリスのケンブリッジに拠点を置く小さなチームによって維持開発が行われています。ここではSimon Tatham氏のPuTTYをベースに日本語表示などのパッチが適用されているPuTTYrvを使用しています。

目次

PuTTY

公式サイトPuTTY: a free SSH and Telnet client

Simon Tatham氏のPuTTYとは別に、いくつかの派生版が存在します。

PuTTYjp
公式版にISO 2022対応の非公式パッチを適用したものです。
Hideki EIRAKUさんが配布されたもので、ずっと利用させてもらっていましたが2020年9月26日にバイナリーの配布が終了しました。
日本語表記iniファイル対応など必要なものだけが適用されていて気に入っていただけに残念です。
最終バージョンはPuTTY-0.72をもとに配布されているものです。
それ以降のセキュリティ対策が適用されていませんので継続利用している方は注意が必要です。

iceiv+putty 

PuTTYの開発版をもとに PuTTY 0.60 ごった煮版 2007年8月6日版のほか諸々の機能を追加しているものです。
開発版がもとになっていることからも安定よりも機能追加を優先されているようです。

PuTTYrv (PuTTY-ranvis)

公式版をもとにPuTTY 0.60 ごった煮版 2007年8月6日版のほか、主に操作性を改善するパッチが適用されています。
公式版のPuTTYのメニューとPuTTYrvのメニューを見比べれば違いが分かりやすいと思います。

ベースにしている公式版にいち早く追随しているようなので、PuTTYjpのあとはこのPuTTYrvを使用させていただくことにしました。

PuTTYrvのダウンロードとインストール

PuTTYrvはプログラム一式が含まれたフォルダーを圧縮して配布されています。

PuTTYrvのダウンロード

今回は、64bit版(PuTTY-0.76-ranvis 2021-07-18 64bit .7z)をダウンロードしました。
2021年8月5日現在の最新バージョンは、公式版0.76をベースにした、2021-07-18です。

ダウンロード一覧からPuTTY-0.76-ranvis 2021-07-18 64bit .7zをクリックするとダウンロードが開始されます。
ダウンロードしたファイルは利用しているブラウザー設定のダウンロード先(通常はダウンロードフォルダ)に保存されます。

ダウンロードファイルの解凍

PuTTYrvをインストールするには.7zの圧縮ファイルが解凍できる必要があります。

おススメ7-Zip

今回は、PuTTY-0.76-ranvis 2021-07-18 64bit .7zを7-Zipにて解凍します。
解凍では「ここに展開」ではなく「PuTTY-0.76-ranvis-20210718.win64に展開」を選択しました。
これにより階層が深くなりますがバージョンごとにフォルダーが作成されます。

PuTTYrvのインストール

解凍したフォルダーごとインストール先(D:\tools)に移動すればインストールは完了です。
(インストール先は任意です。ポータブル版の場所をD:\tools以下にまとめている場合の例です)
PuTTYrv

タスクバーへの追加

インストーラを使用していないのでスタートメニューには追加されません。
putty.exeを右クリックでメニューを表示させて、PuTTYrvの起動を簡単にするために「タスクバーにピン留めする」を選択します。
同じメニュー上に「スタートメニューにピン留めする」もありますのでお好みで選択してください。

次回からはタスクバーまたはスタートメニューに表示されているPuTTYのアイコンをクリックすれば起動できます。

バージョンアップの場合

バージョンアップを行う場合、ダウンロードと解凍をすると別のフォルダーに新しいバージョンが配置されます。
これまでの設定を引き継ぐ場合は、putty.iniを現在のフォルダーから新しいフォルダーへコピー&ペーストすれば継続利用できます。
タスクバーの追加やスタートメニューへの追加はやり直す必要があります。

PuTTYrvの設定

INIファイル対応のパッチが適用されていますので、プログラムと同じフォルダーに.iniファイルが存在すればINIファイルの読み込みやINIファイルへの書き込みをします。
INIファイルが存在しない場合は、オリジナル版同様にレジストリーへアクセスします。
まず、「putty.sample.ini」を「putty.ini」に名前を変更します。
これにより設定はすべてputty.iniに保存されるようになり、起動時にはこのファイルを読み込みます。

PuTTYrv
すでにレジストリーに保存されている内容をINIファイルへ変換するperlスクリプトなどが配布されているようですが、古く、Cygwin環境を要求するものもあるので面倒です。
個人用途であればそれほど多くの設定をしているとは思えませんので、レジストリー版とINI版を同時に起動して同じ設定になるように各設定項目を順番にINI版PuTTYへ反映していけばよいだけです。

公開鍵と秘密鍵の作成

すでに運用していてPuTTYrvの設定を行うだけならここは読み飛ばしてください。

パスワード認証の代わりに用いる公開鍵認証に必要な鍵の作成を行います。
鍵はSSHサーバ側に配置する公開鍵(.pub)とクライアント側に配置する秘密鍵(.ppk)のペアで作成します。

鍵の種類と強度
鍵の種類と強度はPuTTYgenで対応しているものです。
SSHサーバはOpenSSHを使用していますのでOpenSSHで対応している必要があります。

鍵の種類強度OpenSSH対応状況
SSH-1(RSA)2048ビット以上生成可能未対応
RSA2048ビット以上生成可能1024ビット以上
2048ビット デフォルト
DSA2048ビット以上生成可能1024ビット
ECDSA256 ビット(nistp256)
384 ビット(nistp384)
521 ビット(nistp521)
256 ビット
384 ビット
521 ビット
EdDSA255 ビット(Ed25519)
448 ビット(Ed448)
Ed25519

安全な鍵の種類と強度に関しては以下のサイトが参考になります。
参考情報Recommendation for Key Management: Part 1 – General

安全性は日々進化しているので、ある程度先を考えて設計が必要です。また構築後は適時更新が必要です。
2010年ころまでなら80ビットのセキュリティー強度をサポートする乱数生成器でよかったのが、2030年以降は128ビットのセキュリティー強度をサポートする乱数生成器を選択してくださいということのようです。
そのため、今回生成するのは、PuTTYおよびOpenSSHで対応していることを条件に鍵の種類はEdDSA、強度は255ビット(Ed25519)に決定しました。
OpenSSHのssh-keygenを使用して鍵ペアを生成する場合は、関連記事のリンク先を参照してください。
関連記事OpenSSHの設定 (2021-08-10 17:09:13)

PuTTY Key Generator

PuTTYにはPuTTY Key Generator(PuTTYgen)が付属しています。
このPuTTYgenを使用して、公開鍵認証に使用する鍵のペアを生成します

生成(Generate)

以下を選択してアクションの生成(G)ボタンをクリックすると鍵が生成されます。
パラメータ:EdDSA
生成する鍵の曲線:Ed25519(255ビット)
PuTTYgen  PuTTYgen

パスフェーズの入力

鍵のパスフレーズを決めて入力します。
あとで使用しますので忘れないようにしてください。
PuTTYgen

公開鍵の保存(Save public key:id_ed25519.pub)

鍵の生成やパスフレーズなどに問題なければ公開鍵を保存(U)ボタンを押して公開鍵をファイルに保存します。
保存する場所とファイル名は任意です。好きな場所、名前で保存してください。
拡張子は.pubにしておくとわかりやすいです。
あとで使用しますので場所とファイル名は忘れないでください

秘密鍵の保存(Save private key:id_ed25519.ppk)

続けて秘密鍵を保存(S)ボタンを押して秘密鍵をファイルに保存します。
保存する場所とファイル名は任意です。好きな場所、名前で保存してください。
拡張子は.ppkにしておくとわかりやすいです。
あとで使用しますので場所とファイル名は忘れないでください

絶対に秘密鍵は他人の手に渡る場所に保管しないでください。

公開鍵と秘密鍵の保存場所
今回はPuTTYgenで生成した鍵のペアはkeysフォルダを作成し次の表のように保存しました。
※ご自身の環境に合わせて読み替えてください。

公開鍵C:\tools\keys\id_ed25519.pub
秘密鍵C:\tools\keys\id_ed25519.ppk

公開鍵のアップロード

すでに運用していてPuTTYrvの設定を行うだけならここは読み飛ばしてください。

公開鍵認証方式でSSHクライアントからSSHサーバーへ接続できるように、先ほど生成した鍵ペアのうち公開鍵をSSHサーバーへアップロードします。
SSHサーバーへの接続情報、ユーザー個別のssh設定フォルダ、公開鍵格納ファイルは次の表の通りとして説明していきます。
※ご自身の環境に合わせて読み替えてください。

SSHサーバーのIPアドレス/Hostname(コントロールパネルより)133.125.40.141/ik1-438-51137.vs.sakura.ne.jp
ユーザー名(useradd)sakura
ユーザーのホームディレクトリ/home/sakura
ユーザ個別ssh設定フォルダ/home/sakura/.ssh
公開鍵格納ファイル(sshd_config)authorized_keys

まず、SSHサーバーに公開鍵をアップロードしなければなりません。
方法は次の2通りあります。

  1. 公開鍵ファイルを転送
  2. 公開鍵をコピー&ペースト

公開鍵ファイルを転送

先ほどPuTTYgenで生成した公開鍵のファイルをファイル転送ソフトを利用してSSHサーバー上のユーザー個別ssh設定フォルダへ転送する方法です。
初回設定を想定して、SSHサーバーにはユーザーIDとパスワードで認証が成功すれば接続できる状態として説明しています。
すでにSSHサーバ側でパスワード認証が拒否されているとこの方法では接続できません
一時的にパスワード認証を許可するかすでに公開鍵認証で接続できるユーザを使って作業する必要があります。

ここではWinSCPを使用しています。
WinSCPの設定方法などは関連記事をご覧ください。

※ご自身の環境に合わせて読み替えてください。

ローカルフォルダと公開鍵リモートフォルダと公開鍵
C:\tools\keys\id_ed25519.pub/home/sakura/.ssh/id_ed25519.pub
  1. WinSCPを起動します。
  2. 事前に作成したサイト「ik1-438-51137.vs.sakura.ne.jp」を選択して接続します。
  3. ローカルフォルダからリモートフォルダへ公開鍵id_ed25519.pubを転送します。
    左の画面(ローカルフォルダ)から右の画面(リモートフォルダ)へドラッグアンドドロップで転送できます。

公開鍵をコピー&ペースト

ファイル転送では公開鍵のファイルをアップロードしました。一方、コピー&ペーストは、公開鍵のコードをコピーしてサーバー上のファイルへペーストするだけの方法です。
Windowsなどからリモートで操作している場合は、リモート接続のPuTTYなどを起動してるので、別途ファイル転送ソフトを起動する必要がない分こちらのほうが楽だと思います。

  1. ローカルにある公開鍵ファイルをノートパッドなどで開きます。
  2. すべてを選択してコピー(複製)します。
  3. 次にPuTTYなどを使用してリモート接続します。
  4. ファイル名をid_ed25519.pubでviエディタを起動します。
  5. インサートモード(i)にしてペースト(マウスの右ボタン)します。
  6. :wqで保存してviを終了します。
  7. cat id_ed25519.pubで確認します。
送る

Windowsのエクスプローラーでファイルを選択して右クリックで表示されるメニューに「送る」があります。
ここにいつも利用するテキストエディタを登録しておけば、拡張子が.txt以外でも使用しているテキストエディタを使ってファイルを開くことが簡単にできます。

ファイル名を指定して実行に「shell:sendto」と入力して実行すれば、送るのメニューに表示されているフォルダが表示されます。この場所にファイルを保存すれば送るメニューに追加できます。実行ファイルからショートカットを作成したものをSendToフォルダに保存するのがおススメです。

2つの方法を紹介しましたが、リモート操作用にPuTTYなどは起動していることを前提に考えた場合、慣れてくるとコピー&ペーストの方が早いです。しかし、1行が長いコードをコピー&ペーストするとviエディタなどで複数行に分割される場合があります。そうすると正しくないコードになってしまい認証に失敗してしまいます。コピー&ペーストでは行数があっているかのチェックが必要です。viエディタであれば「:set num」で行数を表示するモードをONに「:set nonum」でOFFに切り替えることができます。
なお、.exrcに設定値を書き込んでおくとviの設定を変更できます。

OpenSSH用に変換

OpenSSHのssh-keygenコマンドで鍵ペアを生成した場合は不要な作業です。

すでに運用していてPuTTYrvの設定を行うだけならここは読み飛ばしてください。

PuTTYgenで作成した公開鍵は複数行からなるフォーマットで形成されています。一方、OpenSSHでは鍵情報は1エントリは1行でなければなりません
そのため、次の方法で変換が必要です。

変換前の公開鍵id_ed25519.pub
変換後の公開鍵authorized_keys
sakura@ik1-438-51137:~/.ssh $ ssh-keygen -i -f id_ed25519.pub  >> authorized_keys

ssh-keygenコマンドの-iオプションで結果を標準出力し、その内容をauthorized_keysファイルにリダイレクションしています。

authorized_keysには接続するそれぞれのクライアントの公開鍵を格納するため複数のエントリーを登録している場合があります。
そのため、「>」(上書き)でなく「>>」(追加)である点に注意してください。
authorized_keysを初めて作成する場合は上書きでも問題ありません。

パーミッションの修正

ユーザ個別のSSH設定フォルダ、その中の鍵ファイルや設定ファイルなどはすべて正しいパーミッションが設定されていないと認証に失敗するなど正しい動作をしません。
それぞれ以下の様にパーミッションを修正します。

ファイルまたはディレクトリパーミッション
.ssh0700
設定ファイルや鍵ファイルなど0600
sakura@ik1-438-51137:~/.ssh $ cd ..
sakura@ik1-438-51137:~ $ chmod 0700 .ssh
sakura@ik1-438-51137:~ $ ls -la .ssh
total 16
drwx------  2 sakura  sakura  512 Aug  9 09:44 .
drwxr-xr-x  3 sakura  sakura  512 Aug  9 09:33 ..
-rw-------  1 sakura  sakura   81 Aug  9 09:54 authorized_keys
-rw-------  1 sakura  sakura  167 Aug  6 23:17 id_ed25519.pub

PuTTY(PuTTYrv)の設定

PuTTYは、SSHクライアントおよびTelnetクライントです。
その他、SCP、SFTPなどのアプリも付属していますがここではPuTTY本体の設定です。
PuTTYはSSHクライアントですので、ここで設定する内容はSSHサーバに依存関係がある項目があります。

PuTTY セッションの基本設定

まず、新しいセッションを作成します。
次の表の内容を入力して保存をクリックします。
※ご自身の環境に合わせて読み替えてください。

ホスト名ik1-438-51137.vs.sakura.ne.jp
ポート11022
保存済みセッション一覧ik1-438-51137.vs.sakura.ne.jp
PuTTYrv

PuTTYのウィンドウの設定

デフォルトのウィンドウサイズが小さかったので次の表の数値に変更しました。
使用しているモニター画面のサイズに合わせてお好みで調整してください。
スクロールバックはスクロールで情報が流れてしまった場合にどれだけ戻れるかの設定です。

127
59
PuTTYrv

文字セット変換の設定

PuTTYrv版では、リモートの文字セットが異なります。
デフォルトの「UTF-8(CJK)」のままにしてあります。
PuTTYrv

サーバに送られるデータ

サーバへの接続時に送られるデータを設定します。
毎回同じユーザで接続するのであれば自動ログインユーザ名を設定しておけばユーザ名の入力を省略できます。

自動ログインユーザ名sakura
PuTTYrv

SSH接続の設定

SSHプロトコルバージョン 2が設定されていることの確認程度です。
PuTTYrv

SSH認証の設定

交換鍵認証の場合、秘密鍵ファイルの場所をここで設定します。
※ご自身の環境に合わせて読み替えてください。

認証のための秘密鍵ファイルC:\tools\keys\id_ed25519.ppk
PuTTYrv
Using username "sakura".
Authenticating with public key "eddsa-key-20210806"
Passphrase for key "eddsa-key-20210806":

秘密鍵が空の場合は、パスワード認証を試行します。
PuTTYrv

Using username "sakura".
Keyboard-interactive authentication prompts from server:
| Password for sakura@ik1-331-25649.vs.sakura.ne.jp:

パスワード認証を想定していて以下のエラーが発生する場合は、SSHサーバ側で交換鍵認証のみ許可の状態でパスワード認証を許可していない場合です。
PuTTYrv

PuTTY セッションの基本設定

セッションの基本設定画面に戻って、保存をクリックして変更内容を保存します。
PuTTYrv

以上でPuTTYの設定は終了です。

以下は、PuTTYで公開鍵認証により、パスフレーズを入力して認証成功し接続できた状態です。

Using username "sakura".
Authenticating with public key "eddsa-key-20210806"
Passphrase for key "eddsa-key-20210806":
Last login: Mon Aug  9 09:41:09 2021 from xxxxx.zzzz.yyyy
FreeBSD 12.2-RELEASE-p7 GENERIC

Welcome to FreeBSD!

Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories:   https://www.FreeBSD.org/security/
FreeBSD Handbook:      https://www.FreeBSD.org/handbook/
FreeBSD FAQ:           https://www.FreeBSD.org/faq/
Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
FreeBSD Forums:        https://forums.FreeBSD.org/

Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with:  pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.

Show the version of FreeBSD installed:  freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages:  man man
FreeBSD directory layout:      man hier

Edit /etc/motd to change this login announcement.
Forget when Easter is? Try "ncal -e". If you need the date for Orthodox
Easter, use "ncal -o" instead.
                -- Dru <genesis@istar.ca>
sakura@ik1-438-51137:~ $

PuTTYrvのインストールと設定方法について記載しましたが、PuTTYはWinSCPからも起動できるようにしておくと便利です。
この2つのアプリがあればリモートサーバの操作で困ることはないと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大阪府門真市に生まれ、高校卒業まで京都府福知山市で育ち、大学は工学部電子工学科を卒業。半導体設計会社に勤務ののちインフラエンジニアとして監視基盤の運用設計業務に就く。現在は都内の施設に勤務。横浜在住。人の役に立てることができればいいなと日々思っています。

目次