WindowsでPowerShellにSSH接続し、矢印キーセットを有効にするにはどうすればよいですか?

WindowsでPowerShellにSSH接続し、矢印キーセットを有効にするにはどうすればよいですか?

これにより、PowerShellに直接移動できます。

ssh foobar 'powershell'

しかし、このシェルでは矢印キーは機能しません。

もし私がただ:

ssh foobar

..次にPowerShellと入力しますpowershell。ここでは矢印キーが機能します。

答え1

はい、ssh foobar 'powershell'これはSSH接続後にコマンドを開始する基本的な方法です...しかし、注意することがあります。デフォルトでは、このようなコマンドを指定すると、OpenSSHクライアントはセッションを非対話型セッションに初期化します。

これは、本質的にリモート側にPTYデバイスがなく、sshdリモートからリモートシェルにまっすぐで、コマンドが実行されることを意味します。また、変数がなく、$TERMログインスクリプトで問題を引き起こす出力が望ましくないため、SSHを介してシステム間で効率的にコンテンツを転送できます。しかし、これはインタラクティブなツールを不幸にします。たとえば、ご存知のように、矢印キーは機能しません。リモート側は、ローカル側が矢印キーに対してどの端末キーコードシーケンスを送信するのかわからないからです。

SSHコマンドラインでリモートコマンドを指定するときは、TTY割り当てを明示的に要求することでこの問題を解決できます。

ssh -t foobar 'powershell'

このオプションを追加すると、リモートエンドのコマンドを指定しても、-tSSHクライアントはリモートエンドが対話型使用のために完全に設定されるように要求します。sshd

powershellローカルシェルに特別な意味を持つ文字がないため、単一引用符を省略することもできます。

ssh -t foobar powershell

関連情報