Windows Terminalとsshの利用¶
Windows上でLinux(UNIX一般でも)へ繋ぐときの端末は、長らく TeraTerm や PuTTY 、RLogin などがありましたが、 Microsoft自身が従来のコマンドプロンプトなどで使っていた端末を現代的に作り直した Windows Terminal が通常利用ではそれほど困らずに端末としての機能を使えるようになっています。 ここでは余計なことをせずに使えるので、Windows Terminalを使っての接続を紹介します。
注釈
PuTTYはオリジナル版でも概ね使えていますが、日本語への対応度をより上げているバージョンが諸処の事情からか派生版がいっぱい出ています。
ごった煮版
iceiv版
ranvis版 その他あるかもしれません
興味ある方はPuTTYと各派生版の名前で検索してみてください
また、sshの部分はMicrosoftがOpenSSHを移植する形でクライアント(ssh )は標準で入っているのでこれを使えば余計な準備が不要となります。
Windows Terminalの導入¶
Windows11¶
Windows11では標準でインストールされているので特に対応は不要です。 せいぜい ストアで更新しておく ぐらいはしてもいいでしょう。
Windows10¶
Windows10では標準では入っていないため、インストールする必要があります。 入れ方はいろいろあります。
ストアから¶
ストアで表示して インストールしてください。
wingetで【おすすめ】¶
winget が入っているなら、管理者のプロンプトを開き、インストールしてみると良いでしょう。
PS> winget install -h 9N0DX20HK701 # ストアのIDのためよくわからん16進数列です
githubから¶
開発リポジトリがgithub上で公開されています。
こちらの リリース一覧 から最新のものを入れれば良いでしょう。 ただし更新の自動化が行われない可能性もあるので、適宜確認しておくと良いと思います。
sshによる接続¶
端末(Windows Terminal)を起動し、 ssh で繋いでみましょう。
PS> ssh 接続先ホスト名
ただし、接続時のユーザー名は Windows側のログインユーザー名 がデフォルトとなってしまうため、違うのであれば明示する必要があります。
PS> ssh ユーザー名@接続先ホスト名
# ユーザー名を -l オプションで渡すこともできます
PS> ssh -l ユーザー名 接続先ホスト名
通常sshは22/tcpを利用しますが、学校で配布している仮想マシンへの接続など、ポート番号が異なる時は、ポート番号を -p PORT で設定する必要があります。
PS> ssh -p ポート番号 ユーザー名@接続先ホスト名
PS> ssh -l ユーザー名 -p ポート番号 接続先ホスト名
これらを踏まえたとき、学校配布の仮想マシン(VM)に接続するときは以下のコマンドラインとなります。
接続先はWindowsホスト上のVMのため、自分自身(localhost)
接続するユーザーは
linux
接続するポート番号は 2022
PS> ssh -p 2022 linux@localhost
# もしくは
PS> ssh -p 2022 -l linux localhost
config
で少し手軽に¶
sshの接続時コマンドラインは少々複雑になるので、普段使いのものは設定に入れておく方が楽できます。
そこで、 ~/.ssh/Config
を準備しておくといいでしょう。
PS> mkdir ~/.ssh # 下の注釈参照
PS> cd ~/.ssh
PS> notepad Config #さしあたりメモ帳でさっと記入
注釈
何らかの理由で既に用意されていることもあります。その場合は気にせず cd してください。
PS> mkdir ~/.ssh
mkdir : 指定された名前 C:\Users\densuke\.ssh の項目は既に存在します。
Host ls
HostName localhost
Port 2022
User linux
RequestTTY yes
この例では、短縮名ls(Linux Study)としていますが、適当な名称にしてもOKです(ただし適宜読み替えてください)。
- HostName
接続先ホスト名
- Port
22/tcp以外の非標準ポートを使うときの番号
- User
接続先のユーザー名
- RequestTTY
端末制御の利用を求める(vi などが利用)
注釈
メモ帳(notepad) を使ったとき、新規で生成されるファイル名に暗黙で拡張子 .txt を付けられてしまうことがあるので、メモ帳終了後にファイル名を確認しておきましょう。
PS> notepad Config # Configファイルを作成
# 以下はメモ帳終了後に
PS> ls
# ファイル名が "Config.txt" になっていないかチェック、もしなっていたら修正
PS> Rename-Item Config.txt Config
PS> ls
# ファイル名の変更をチェック
以上の設定により、
PS> ssh ls
で接続できるようになります。
おまけ: プロファイルの追加¶
Windows Terminalでは、開くタブ(ウィンドウ)で実行するべきコマンドをプロファイルという形で登録できます。 ssh を使う形で記述する場合、以下の設定をプロファイルとして追加すれば該当プロファイルを開くだけで接続を試みるようになります。
- 名前
お好みで
- コマンドライン
C:\Windows\System32\OpenSSH\ssh.exe ls
(lsのところは自分で設定した短縮名)- 開始ディレクトリ
%USERPROFILE%
(たぶん初期値)- アイコン
適当に設定してください(画面例はPowerShellのものをコピー)
- タブタイトル名
設定不要(してもいいけどどうなるかよくわかりません)

プロファイル設定例¶