前置き
VSCodeのRemote DevelopmentでWindows 10からLinuxへ接続できるようになり、開発が捗るので、とても便利です。
便利なのですが、リモートサーバーに接続する段階で、うまくつながらなかった場合のトラブルシューティングがとても大変なので、引っかかったトラップを紹介します。
SSHが起動するか
Install(接続中)のままつながらなかった場合、そもそもSSHが起動するかをまず確認してみましょう。ターミナルの中で以下のコマンドを実行しましょう。ssh -V
この時に、コマンドが見つからないとなったら、SSHが正常に機能していません。
まずはOpenSSHクライアントが導入されていることを確認します。
https://www.onebizlife.com/windows10-ssh-client-1980
コマンドプロンプトからはSSHのパスが通っているが、VSCodeからは動かないという場合、launch.json のenvでPATHの環境変数を上書きしている可能性があるでしょう。
https://garafu.blogspot.com/2017/05/vscode-environment-variables.html
SSHのバージョンが正しいか
これは中々わからなくてしんどかったです。
以下のようなエラーが出た場合、利用しているSSHクライアントが正しいものかを確認します。
プロセスが、存在しないパイプに書き込もうとしました。以下の記事で、なんとなくSSHクライアントの問題ぽいなと当たりはつけたのですが、環境や現象は異なっております。
TELEMETRY: {"eventName":"resolver","properties":{"outcome":"failure","reason":"UnparsableOutput","askedPw":"0","askedPassphrase":"0","asked2fa":"0","askedHostKey":"0","gotUnrecognizedPrompt":"0","remoteInConfigFile":"1"},"measures":{"resolveAttempts":1,"retries":1}}
https://qiita.com/CoffeeJunJun/items/29dda4b60a60bde3b771
https://github.com/microsoft/vscode-remote-release/issues/1678
この場合、
ssh -V
の結果を確認してみてください。私の環境では以下のようになりました。OpenSSH_7.5p1, OpenSSL 1.0.2d 9 Jul 2015
これは、Windows10に正式リリースされたSSHクライアントではなく、前段としてPowershellチームが移植してくれたWindows向けOpenSSHを利用していたのでこのバージョンになりました。
https://github.com/PowerShell/Win32-OpenSSH/releases
Windows10の標準クライアントであれば、以下のような出力になります。
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
おそらく、SSHクライアントのバージョンに依存するのだと思われます。
公式見ても要求仕様はよくわからないけど、たぶんSSL libがVer.2系ならいけるのでしょう。
他にも、git for windowsなどのSSHが同梱されているアプリにパスを通していて、OS標準のSSHが使われていないなどであれば、バージョン表示が異なることでしょう。
どのSSHが利用されているか確認し、OS標準のものではなかった場合には切り替えましょう。
Windowsでは、whereコマンドというLinuxにおけるwhichのようにパスを確認するコマンドがあります。
where ssh.exe
OSのパスは以下です。これ以外のSSHクライアントを利用していたら、パスを変えるなり、該当パスのssh.exeをリネームするなりして、OS標準のSSHクライアントが利用できるようにしましょう。
C:\Windows\System32\OpenSSH\ssh.exe
0 件のコメント:
コメントを投稿