created: 2021-12-24T08:07:37.000Z

GCP Cloud Shell 上のコードを VS Code の Remote-SSH で触れるようにする

基本的にはこちらの記事のとおりにやればよかった。

Cloud Shell を起動

  • cloud-shell コマンドでログイン
  • ここでssh鍵などがローカル側に生成される。生成された鍵は後で使う。
$ gcloud cloud-shell ssh

コードのclone

プロジェクトのコードを Cloud Shell 上で触りたかったので、GitHub から git clone するためのトークンを払い出す。GitHub はURLにBasic認証みたいな細工をするとhttpsプロトコルでcloneができる。

$ git clone https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/${REPOSITORY} .
# commitするのにこの辺の設定が必要。
$ git config --local user.name xxxxxxxxx
$ git config --local user.email xxxx@xxx.xx

このあたりをちゃんとやるのだと Secret Manger を使うのがよいようだ。

.ssh/config

VS Code の Remote-SSH のために $ ssh cloudshell_proj でつながるような設定を仕込む。

Host cloudshell_proj
    ProxyCommand gcloud cloud-shell ssh --ssh-flag='-W localhost:22'
    User sakamossan
    IdentityFile ~/.ssh/google_compute_engine
    StrictHostKeyChecking no

Remote-SSH の設定

これができたら VS Code のコマンドパレットから Remote-SSH: Connect to Host... を選択して、 接続先を入力する。 ↑のconfigだと cloudshell_proj と入れれば接続設定は完了。

ただし、自分の場合だと設定後すぐには接続に失敗してしまい、ここで1回 vscode を再起動しないとちゃんと接続できなかった。

参考

2022年は VS Code をちゃんと使うような年にしたい。