#Windows7までは Tera Term 使っていましたが…
Windowsでターミナルソフトと言えば私の場合、Tera Term ですが他には Putty や Poderosaなど高機能なターミナルソフトを利用している方もいるでしょう。
この度、Windows10にノートPCを買い替えて今まで同様に**Tera Term** をインストールしたところ、高DPIによる表示問題が出たためこれをきっかけにいろいろターミナルを探した結果、Windows版OpenSSH をインストールすることにしました。
(2018年12月追記)
2018年4月のWindows10アップデートでOpenSSHが正式に組み込まれるようになったみたいですね。(ご指摘くださり、ありがとうございました。)
インストールに関する記述を修正しました。
#Windows版 OpenSSH のインストール
2018年4月のアップデートですでにOpenSSHクライアントはインストール済のようです。
スタートメニューから [Windows の設定]-[アプリ]-[オプション機能の管理] を開いて、OpenSSHクライアントがインストール済であるか確認してください。
下記のように表示されていれば、インストール済です。
コマンドプロンプトを開いて、where ssh
とコマンドを叩くと、OpenSSHコマンドの場所が確認できます。「C:¥Windows¥System32¥OpenSSH¥ssh.exe」にインストールされていることが判ると思います。
以前の私の記事では、「C:¥opt¥openssh」にインストールしていましたので、Windows10標準のコマンドが有効であることが判ります。
※過去に手動インストールし、Path環境変数に手動インストールしたパスを通している場合は削除した方が良いでしょう。
#OpenSSH を試してみる
PowerShell コンソールを起動し、Linux などで利用するときと同じく ssh と打てば SSH を利用することができます。
PowerShell コンソール上で動作しているCUIアプリですので、特に際立ったものはありませんが、表示も滲んだり日本語がアンバランスに大きくなったり変な表示になりませんので非常に快適です。
なお、Windows版OpenSSH もユーザホームに「.ssh」フォルダを作成することで config ファイルを作成して接続を簡略化することができます。
「.ssh」フォルダはExprolerで作成することができませんので、コマンドラインで作成するか一度 ssh でどこかに接続すれば known_hosts ファイルを作成するために「.ssh」フォルダが作成されますので、その後で config ファイルを作成すれば良いでしょう。
config ファイルの内容は鍵認証で接続する場合、以下のような記述で十分でしょう。
Host <ホスト名>
User <ユーザー名>
Hostname <接続先のホストアドレス>
Port <ポート番号(通常は22)>
IdentityFile <秘密鍵ファイル>
ホスト名は任意の名称をつけてください。
接続先のホストアドレスはIPアドレスまたはFQDNを指定してください。
ポート番号は通常SSHのデフォルトは22番ですが、セキュリティの関係で別ポート番号を利用している場合がありますので環境に応じて変えてください。
秘密鍵ファイルは鍵認証を利用する場合は必要です。
例えば以下のような config ファイルを作成したとします。
Host hogehoge
User hogeuser
Hostname 192.168.100.100
Port 2222
IdentityFile id_A.rsa
以下のようにコマンドを起動すれば、hogehoge の設定どおりにSSH接続ができます。
> ssh hogehoge
config ファイルは分割することも可能です。
例えば以下のようなフォルダ構成にすることが可能です。
$HOME/.ssh/
|-- conf.d/
| |-- host1/
| | |-- config_host1
| | `-- id_rsa
| `-- host2/
| |-- config_host2
| `-- id_rsa
`-- config
Include conf.d/*/config_*
Host hogehoge.host1
User hogehoge
Hostname 192.168.100.100
Port 2222
IdentityFile ~\.ssh\conf.d\host1\id_rsa
Host magemage.host2
User magemage
Hostname 192.168.100.200
Port 3322
IdentityFile ~\.ssh\conf.d\host2\id_rsa
config ファイルには Include
キーワードを利用してファイル分割が可能です。
また、Include
キーワード内のパスにはワイルドカードも指定が可能なので、上記フォルダ構成のように host1
、host2
を同じ構造で定義することが可能です。
このようにしておくことで、新しいホストが増えた場合はフォルダを追加してその配下の config_xxx
を編集するのみですので、管理が容易です。
なお、 config ファイルの分割や Include
キーワードの利用は OpenSSH のバージョンに依存していますのでご注意ください。(OpenSSH 7.3 以降)
#さいごに
OpenSSHがWindows標準となり、インストールなどの面倒な作業も行わなくても良くなりましたので、ますます利用が便利になったのではないでしょうか。