VSCodeでリモート開発やるぞ!
terminalからは繋がるのにVSCode Remoteでは...ssh繋がらない..orz
サーバーで開発するときにはvimで開発してるけど、
周りがVSCode使ってるし、Remote Development Kitでたからちょっとためしてみよう!
...sshつながらないじゃん
って人への対処方法2つまとめました。
症状
普段は踏み台サーバーを経由して、ssh接続で繋げて開発している。
けれど、VSCode RemoteにするとUnreachableというエラーが生じでてしまう。
原因1
サーバー側で待機しているsshdに対して、クライアント側のsshのopensslが古いと繋がりません。
具体的な情報は環境によるので記載しませんが、AWSやGCPのクラウド上で作業しているのならば、基本的にはクライアント側(MacやWindows)のopensslのバージョンでしょう。
解決方法
opensslのアップデート方法(brewがinstall済み前提)
sshでつなぐときに使用しているopensslのバージョン確認
ssh -V
OpenSSH_7.9p1, LibreSSL 2.7.3
このバージョンがだいたい8系が入っていたら僕の周りの人は解決しました。
brew update
brew install openssl
brew update
brew upgrade openssl
原因2
サーバー側で強制的にshellを切り替えていると失敗する問題。
例えばこういう人が当てはまると思います。入ってきたばかりで、root権限もsudoersにも慣れていない状態で、ログインシェルが固定されている。ログインシェルは、tcsh/bashだけど、アナログにzshに切り替えている人です。
多分こんなコードを設定ファイルに記載して切り替えているのではないでしょうか?
exec zsh
//もしくは
zsh
bashがログインシェルになっているけどzshに強制的に切り替えているパターンです。
エラーの内容は、 'install' command not found みたいに怒られます。
解決方法
素直にその記述を消して繋げてみましょう。
less $HOME/.bashrc
less $HOME/.bash_profile
をしてその記述をコメントアウトしてから再読み込みをかけましょう。
source ~/.bashrc
まとめ
vimで編集するときはsshで接続しているのに、VSCodeだと繋がらないという方は上記の2つの箇所を試してみてください。
こちらにtipsものっているので
https://code.visualstudio.com/docs/remote/troubleshooting#_enabling-alternate-ssh-authentication-methods
VSCode vimの設定も書いているのでぜひこちらもどうぞ。
https://qiita.com/y-mattun/items/45776b7e1942edb2f727