環境
- windows10
- OpenSSHはwindows10の「オプション機能」からインストール。
症状
- リモートへの接続のための別ウィンドウが出てから、初期化(左下の「リモートを開いています」)が終わらない。
- ターミナルには何も表示されない。
- OpenSSHは起動している。
- PowerShellなどではsshコマンドで接続できる。
理由と対処法
- ターミナルに何も表示されなかったのはOpenSSHのパスがVScodeが知らなかったのが問題だったようです。
- 設定の[Remote-SSH]の[Remote.SSH: Path]にパスを入力してあげると解決します。
- パスの調べ方はコマンドプロンプトで[where ssh]と入力すると表示されます。こちらの環境では[C:\Windows\System32\OpenSSH\ssh.exe]でした。ここまでで無事接続できる方も多いと思います。
- この状態で再度接続しようとしたら[WARNING: UNPROTECTED PRIVATE KEY FILE!]と警告がでました。
- これは警告の通りで調べればすぐわかるのですが、秘密鍵のパーミッションが不適切だということです。
- これの対処法は、秘密鍵を右クリック=>プロパティ=>「セキュリティ」タブ=>「詳細設定」を開いたら、「継承の有効化」を押して「継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変換します。」を選択。そしたら、windowsにアクセスしているユーザー以外のユーザーを削除。そしたら「OK」で終わり。
OpenSSHのインストール場所は既定のものだったらので特にsshのパスを気にしていなかったのと、
PowerShellからsshコマンドで接続できていたので秘密鍵に意識が向かなかったのが失敗でした。
(linuxではパーミッションなんて初歩的なことなんですけどね><)