この問題は以下の環境で発生しました
- Windows
- Windows Terminal
- Vagrant
- VirtualBox
- Git Bash
問題
Vagrant で仮想環境を立ち上げ、vagrant ssh
で接続します。そして vi コマンドでファイルを編集しようとすると、カーソルキーが期待通りに動作してくれません。カーソルが動くのではなく画面が点滅します。
原因
これはGit for Windowsに同梱のSSHクライアントを使ってSSH接続しているのが原因です。バグなのか仕様なのかは分かりません。
解決方法
Git for Windowsのインストール時に
SSHクライアントをインストールしないようにすると、Windows標準のSSHクライアント(C:\Windows\System32\OpenSSH\/ssh.EXE)を利用するようになるので、インストールしないようにします。
すでにインストールしている場合は再度Git for Windowsのインストーラーを起動し、Use External OpenSSH を選択してインストールを完了します。
ほかの選択肢
もしくは、Git Bash以外のシェル(PowerShellなど)を使えばWindows標準のSSHクライアントを用いるかもしれません(未確認)。
SSHクライアントの確認方法
自分がどのSSHクライアントを利用しているかはvagrant ssh --debug
で確認できます。ログがだーっと流れるので、その中にそれぞれ以下のような行があります。
Windows標準の sshクライアントを使っている場合
INFO ssh: Invoking SSH: C:\Windows\System32\OpenSSH\/ssh.EXE ...
Git for Windows の sshクライアントを使っている場合
INFO ssh: Invoking SSH: /bin/ssh ...
Windows標準のSSHクライアント
Windows標準のSSHクライアントは、セキュリティ権限のチェックが厳しいです。vagrantフォルダ以下にある .vagrant\machines\default\virtualbox\private_key のプロパティを開きセキュリティタブを選択、自分以外のユーザーをすべて削除しましょう。
コメント