毎度メモ程度ですが、VSCodeのremote sshという拡張機能を使ってVMにSSHする方法を書きます。
MSの公式拡張機能です。
メリット
リモート環境を使い開発する際に、ローカルにほとんど何もいれなくて済みます。
例
- Pythonで開発していた人の場合
Remote上のPythonのpathを指定して、remote上でデバグができる。 - 今までRemote FSを使ってremote上のファイルを管理していた人も、それを使うことなく同様のことができる。ファイルをremoteで変更した時Remote FSにくらべ、にファイルの更新が早い。
前提条件
- VMにファイルを転送できる状態
- Ubuntu LTS 18.04
方法
※GCPのインスタンスを使用する場合は、簡略化した方法でRemote SSHを使うことができる。GCPがAuthorized_keyの設定などをしてくれるため。
その場合、以下の記事の内容をフォローした後に、本記事のローカルのpcからコマンドライン経由でsshしてみるから実行すればできる。
1. 公開鍵と秘密鍵の作成
$ ssh-keygen -t rsa -b 4096
2. リモートサーバーに公開鍵を転送(.pubファイル)
リモートVMにSCPやSFTPなどで鍵を転送する。もちろん、さっき作ったユーザでは転送できないので、VMにすでにアクセスできるユーザで転送する。
※GCPやAWSでは、GUIコンソールから鍵を追加することもできる。以下を参照。
3. リモートサーバーの"~/.ssh/"ディレクトリのパーミッションを変更(読み取り、書き込み、実行)
$ chmod 700 .ssh
.sshがないときは自分で作る
4. ファイル"authorized_key"のパーミッションを変更(読み取り、書き込み)
リモートサーバーの"~/.ssh/"ディレクトリにある、なかったらつくる
$ chmod 600 authorized_key
5. 公開鍵を"authorized_key"に登録
ここではid_rsa.pubファイルを例に
$ mv id_rsa.pub ./.ssh/id_rsa.pub
$ cat id_rsa.pub >> authorized_key
6. sshdの設定を変更
$ sudo vi /etc/ssh/sshd_config
以下の設定をオンにする
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
7. sshdのサービスを再起動する
$ sudo service sshd restart
8. ローカルのpcからコマンドライン経由でsshしてみる
9. VScodeのremote developmentの拡張機能をインストール
以前は、Vscode Insidersでのみ使用可能だったが、2019年のGWあたりのVScodeの更新でVSCodeでも使用できるようになった。
10. VScodeのデスクトップマークが現れるのでそこを押すと、歯車マークそこを押して、設定ファイルを作る
Host [host-alias]
HostName [XX.XX.XX.XXX]
User [your-username]
IdentityFile [C:/Users/user/.ssh/id_rsa]
host-aliasを
Host [your-username@XX.XX.XX.XX]
のようにすると、怒られました。なんでだろう。(2019.07.10追記)
11. SSH開始
スクショのようなHostが現れるので、ここを右クリックするとSSHができる
以上です。
ありがとうございました。
何かご指摘があれば、ぜひお願いします。