LoginSignup
1
0

More than 3 years have passed since last update.

EC2インスタンスにVScodeのRemote SSHで接続するまで(普段WSL利用者向け)

Posted at

前提条件

  • 自分で作成した秘密鍵でSSHログインしたい。
  • WSLでいつもSSHを利用していて、秘密鍵の場所もWSLのhome以下の.sshで管理している。(秘密鍵の編集権限の設定に関わる。)
  • cloud9でもいいけど、結局VScodeが見やすく使いやすいのでVScodeで開発したい人向け。

流れ

  • EC2インスタンスに公開鍵をEC2インスタンスに登録。
  • VScodeでの設定。VScodeでRemote SSHをインストール。設定ファイルの場所を変更。
  • 秘密鍵の権限を設定。
  • configファイルを設定。

EC2インスタンスに公開鍵をEC2インスタンスに登録。

EC2インスタンスを起動。
vim ~/.ssh/authorized_keysに公開鍵を追記する(既存の公開鍵は削除してしまわないように)。
インスタンスがパブリックネットワークに置かれていること(参照先のルートテーブルにインターネットゲートウェイがあること)を確認する。
また、インスタンスのセキュリティグループの設定でSSHアクセスが許可されていることを確認する。

VScodeでの設定。

Remote SSHの設定で、設定ファイルの場所を以下(普段WSLでSSHで利用しているconfigファイルの場所)に変更。
秘密鍵もこちらに置いてある。
C:\Users\${Username}\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\${Username}\.ssh\config
新しくどこかにつくってもよいが、SSH系は一か所で管理した方が楽なので。
ただし、このようにすると秘密鍵の権限設定が少し必要になる。

秘密鍵の権限を設定。

WSKで作成した鍵は、Windows(VScode)側からはフルオープンになってしまっている。
確認方法は、エクスプローラーでファイルを右クリック
プロパティ⇒セキュリティ⇒詳細設定
image.png
こちらの権限を適切にしないと、VScodeからRemote sshで接続しようとするとpermission too openエラーが出てしまう。

以下、設定方法。
1. まず秘密鍵をコピー(失敗しても戻れるように)。失敗すると戻れなくなってしまう可能性あり。
1. コピー後のファイルで、権限変更をする。まず継承の無効化をする。image.png
1. 無効化すると、ようやくユーザー以外のアクセスを削除できるようになる。
image.png

上記設定は、WSLのターミナルからであればsudo chmod 400 ./秘密鍵で済むが、Windows側から権限設定となると少し面倒。

注意点:毎回IPアドレスが変わるので、チェックする必要がある。もしくは、こちらの記事でドメイン名を取得し、インスタンス起動時に毎回IPアドレスをドメイン名と紐づけるように設定するとラク。

configファイルを設定。

ターミナル上でvim ~/.ssh/configでconfigファイルを編集。VScodeからもできる。
C:\Users\${Username}\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\${Username}\.ssh\configこちらでも良いし、WSL上での~/.ssh/configどちらでも同じファイルを編集することになる。

config
Host cloud9VScode
        HostName ${ip_address} or ${example.com}
        user ec2-user
        identityfile C:\Users\${username}\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\${username}\.ssh/秘密鍵

これで繋がります。

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