0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

備忘録:VSCode でGCPインスタンスにSSH接続する際の注意

Last updated at Posted at 2020-10-10

何の備忘録?

  • WindowsローカルマシンのVSCodeからGCPに接続する方法を一応書いている(準備)
  • VSCode上でSSH設定する場合に注意すべき点(__これ__を残しておきたいだけ)

準備

WSL(Windows Subsystem for Linux:Windows上でLinuxディストリビューション(UbuntuやDebianなどがMicrosoft Storeで配布されている)のターミナルを使用できるシステム)で鍵を生成する方法を載せておく(<>で囲まれた部分はそれぞれ自身の環境に依存するため読み替えるように).

$ ssh-keygen -t rsa -b 4096 -C "<GCP user email address>"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/<username>/.ssh/id_rsa): <Enter> or <Enter Path You want to save the key>
Enter passphrase (empty for nopassphrase): <Enter> or <password>
Enter same passphrase again: <Enter> or <Enter the same password above>
Your identification has been saved in <savepath>
Your public key has been saved in <savepath>
The key fingerprint is:
SHA256:<sha256 fingerprint>
The key's randomart image is:
+---[RSA 4096]----+
| <some char art> |
+----[SHA256]-----+
$

ほかのインスタンスですでにid_rsaが作成されていたら,別のrsaファイル名に変えておく(例えば,id_rsa2).

Windowsでも作成できるものの,著者の経験としてシステム開発ではLinuxを標準としていることが多いため,Windowsのコマンドに関しては言葉を知らない赤ちゃんレベルに何もわからない.

さて,無事作成された鍵であるが,デフォルトで指定したパスで保存した場合,WSLからしかアクセスできない場所にあることに注意が必要である.

これが以下のConfigを設定するときにパスが煩雑になってしまうため,備忘録として残しておく.

本論的内容

VSCode 上で GCP 上に作成したインスタンスにssh接続したい場合,標準的にはconfigファイルが作成される.以下の形式のように.

Host <Arbitrary Host name>
    HostName <External IP address>
    User <UserName> (_付きのデフォルトユーザーはNGPort 22 (default)
    IdentityFile <~/.ssh/id_rsa by default>
    IdentitiesOnly yes

いいたいこと

ここで,IdentityFile ~/.ssh/id_rsaの部分!WSLユーザーなら~はWSL上のホームディレクトリーを指していると思うかもしれない(自分はそう思い込んでいた!).しかし,これはWindowsのホームディレクトリである.つまり,~C:\Users\ユーザ名なのである!

だから,WSLで作成した鍵の保存パスを参照しない!
よって,WSLで作成した場合,WSLターミナルでC:\Users\ユーザ名\.ssh\id_rsaid_rsa.pubを移動(コピー)する必要がある.

IdentityFileのところで直接WSLで作成した鍵のパスを書けばいいと思うかもしれないが,筆者は勧めない.まず,WSLのパスとWindowsのパスは共有されていないため,直接パスを見つけることは容易でないうえ,WSLも設計上,Windowsアプリからの直接のパス参照は非推奨としているはずである.そもそも,WindowsのパスでWSLのホームディレクトリはどこにあるのかも不明である(探せばあるかもしれないが,そんなことはしないほうがいいのは当たり前).

追記

dockerをsudoなしで一般ユーザーで使用するためには,
$ sudo gpasswd -a <username> docker
を実行するようにね.

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?