SSHクライアントをTeraTermからWindows Terminalへ

15年以上TeraTerm Menuを便利に使っていたけれど、代替SSHクライアントはないものかと調査したときの覚書。

環境: Windows 11 pro 22H2, Windows ターミナル 1.16.10262.0


1.Windows標準のOpenSSHクライアント

Windows11は標準でOpenSSHクライアントを利用できる。

gcmコマンドでパスを確認
PS> gcm ssh

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     ssh.exe                                            8.6.0.1    C:\Windows\System32\OpenSSH\ssh.exe

OpenSSHがない場合は、設定 > アプリ > オプション機能でOpenSSHクライアントを有効にする。


2.Windows Terminalとは?

Windows Terminal(日本語名:ターミナル)はモダンなコマンドラインアプリ。
Windows Storeから無料でインストール可能。
参考: Windows Terminal - Wikipedia

一言でいうとコマンドライン版Visual Code Studio。
タブ表示、ウィンドウ分割、キーバインドの設定などカスタマイズ性が高い。
(ウィンドウ分割しなくても別でWindows Terminalを立ち上げて並べてもいい)

GitHubでソースコードが公開されている。
すごく使いやすい。Windows環境では、これ一択になると思う。


3.Windows TerminalにSSH接続のショートカットを作成

Windows Terminalの設定から直観的に操作できる。
「+新しいプロファイルを追加します」を選択して、最初はPowerShellのプロファイルをコピーする。

コマンドラインにsshコマンドを設定。

ssh -i ~/.ssh/private-key.pem centos@1.2.3.4

右下の保存ボタン。

あとはサーバー分だけプロファイルをコピーして作る。
本番サーバーは外観を変えて分かるようにしておく。
表示順はJSONファイルを直接編集すれば出来ると思う。

公式サイトも参考に。

TeraTerm Menuのようにパスフレーズの入力保管はできない。
秘密鍵でパスフレーズを省略すればOK。


4.wtコマンド

公式サイトを参考に。
参考: Windows ターミナルのコマンド ライン引数 | Microsoft Learn

現在のウィンドウを分割して別プロファイルを適用する
PS> wt -w 0 sp -p indigo01

現在のウィンドウに新しいタブで別プロファイルを適用する
PS> wt -w 0 nt -p 'Git Bash'


5.設定

変更した設定をメモ

  • 操作 > 選択範囲をクリップボードに自動でコピーする:オン
  • 操作 >複数のタブを閉じるときに警告する:オフ
  • Windows PowerShellとCommand Promptのプロファイルは非表示にする。
    (削除しても復活する)


キーバインド

設定JSONファイルに直接記述
        {
            "command": 
            {
                "action": "splitPane",
                "split": "right",
                "splitMode": "duplicate"
            },
            "keys": "ctrl+5"
        },
        {
            "command": 
            {
                "action": "splitPane",
                "split": "down",
                "splitMode": "duplicate"
            },
            "keys": "ctrl+2"
        },
        {
            "command": "closePane",
            "keys": "ctrl+w"
        }

settings.jsonの場所
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState



【関連記事】