VSCode Remote Development とは
こちらの記事などが参考になると思います(投げやり)
簡単に言うと,あたかもターミナルからリモートでvimやemacsを使ってリモートのファイルをいじるかのように,VSCodeでもリモートの環境でリモートのファイルをそのまま編集できたりするとんでもない拡張機能です.
もはやリモートとローカルの壁がよくわからないことになります.
~/.ssh/config
を読み込んでリモートに接続することもできます.
例えばSSHの鍵の転送をする場合は以下のような感じで設定します.
するとリモート接続にパスワード不要な上に,リモートのVSCodeからgithub等にそのままpush
/pull
などが行なえます.
Host [NAME]
HostName [HOST]
User [USER]
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes
問題点
以下の状況を想定します.
- ローカルマシンにSSHの鍵を持っている
- リモートマシンには同一の鍵を置きたくない
- github等にリモートマシンで作成した鍵を登録したくない
- 普段ターミナルでリモートに入る際
ssh -A
のようにして入って鍵を転送させている
この状況で VSCode Remote Development を用いて開発を行っていると,リモートに繋がっているVSCode上から github等に push
/pull
などができなくなることがあります.
原因はSSHの鍵を正常に転送できなくなるためです.
この現象が起きたときにssh-add -l
を実行すると鍵がないよって言われます.
どうやら一時的に接続が切れたりして再接続を行ったときに起こることがあるようです.
リモートマシンでps
コマンド等で確認すると,VSCode Remote Development用のサーバプロセスが乱立していたりします.
解決法
-
VSCode(ローカルリモートどちらでも可)でコマンドパレットを開きます
Mac:⌘ + Shift + P
またはF1
その他:Ctrl + Shift + P
またはF1
-
コマンドパレットから
Remote-SSH: Kill VSCode Server on Host...
を選択 -
問題の起きているリモートサーバを選択してkillする
-
再接続する
以上で問題なくリモートにつないでいるVSCode上から再びローカルの鍵を使ってpush
/pull
などができるようになっていると思います.
終わりに
VSCode Remote Development は非常に便利で強力な拡張機能ですが,今の時代にリモートリポジトリに簡単にアクセスできないのはなかなか致命的な問題です.
再接続周りのバグ?のような気がするのでいちいちkillすることなく,快適にコーディングができるように修正されることを待つばかりですね.