Windows に ssh.exe や Windows Terminal が標準で入るようになりました。「ゆえに SSH に Tera Term は必要ない」という発言を見かけますが、その説明が技術的に正しいと言える場合と、そうでない場合を説明してみたいと思います。
説明1. ssh.exe が標準搭載された
OpenSSH の Windows バイナリはそれ以前からありましたので、これだけでは技術的に正しい説明とはなりません。
導入しやすくなったのは事実ですが、自分で導入すれば("OpenSSH for Windows" とか、Cygwin に openssh パッケージを入れるなどで)利用可能でした。
説明2. Windows Terminal が標準搭載された
Windows コンソールホスト(conhost.exe) で起動したコマンドプロンプトからでも ssh.exe は使えるので、技術的に正しい説明とはなりません。昔からコマンドプロンプトで telnet.exe が使えたのと同じです。
説明3. Microsoft が提供したものだけを使いたい
自由にフリーソフトを入れられない環境もあり、そのような制約がある場合には OS 標準のツールでのみ作業することになります。また、単に導入が楽ということもあります。そのような場合には技術的に正しい説明になると思われます。
ssh.exe が標準搭載されたことは理由になります。しかし前述のとおり「Windows Terminal が搭載されるようになったから」は理由になりません。
また Windows に標準搭載された ssh.exe は、Microsoft が OpenSSH を Windows バイナリとしてコンパイルしたものです。Microsoft が独自に開発した SSH クライアントというわけではありません。Micosoft が OpenSSH を Windows に標準搭載したこと(ある意味で OpenSSH または OpenBSD Project を信用する判断をしたこと)で導入できるのであれば、ssh.exe が OpenSSH であることは問題にならないことでしょう。逆に「Microsoft が開発したものでなければ不安で使えない」のであれば、macOS, 各種 Linux, BSD などで採用されている OpenSSH であっても使えないことになります。
コンポーネントと担当部分のまとめ
Tera Term や Windows Terminal といった登場人物は、次のような役割を担当しています。
「Windows Terminal が、Tera Term や他の端末エミュレータと同様に SSH 接続を行っている」という認識は誤りであり、正しくは以下のようになります。
-
Windows Terminal を使う場合
- Windows Terminal を起動する
- コマンドプロンプト(cmd.exe) か PowerShell が起動し、コマンド入力を受け付けるようになる
- ssh.exe コマンドで SSH サーバに接続する
- SSH サーバがシェルを起動し、サーバ側のコマンド入力を受け付けるようになる
- Windows Terminal を起動する
-
Tera Term の場合
- Tera Term を起動する
- 接続先を指定して接続を開始する
- SSH プロトコルで接続する場合は内部的に TTSSH が使用される
- SSH サーバがシェルを起動し、サーバ側のコマンド入力を受け付けるようになる