10
6

More than 5 years have passed since last update.

VSCode Remote Development でSSH鍵が正常に転送できなくなることがある話

Posted at

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用のサーバプロセスが乱立していたりします.

解決法

  1. VSCode(ローカルリモートどちらでも可)でコマンドパレットを開きます
    Mac: ⌘ + Shift + P または F1
    その他: Ctrl + Shift + P または F1

  2. コマンドパレットから Remote-SSH: Kill VSCode Server on Host... を選択

  3. 問題の起きているリモートサーバを選択してkillする

  4. 再接続する

以上で問題なくリモートにつないでいるVSCode上から再びローカルの鍵を使ってpush/pullなどができるようになっていると思います.

終わりに

VSCode Remote Development は非常に便利で強力な拡張機能ですが,今の時代にリモートリポジトリに簡単にアクセスできないのはなかなか致命的な問題です.
再接続周りのバグ?のような気がするのでいちいちkillすることなく,快適にコーディングができるように修正されることを待つばかりですね.

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6