VSCode – Remote Development をパスワード入力なしで使用する方法

目次

概要

リモートマシン上で開発が行える VS Code の拡張「Remote Development」で SSH 接続した際に、頻繁に出るパスワード認証を出ないようにする方法について解説します。

手順

1. 公開鍵及び秘密鍵をログイン元の PC で作成する。

「Power Shell」を起動し、「ssh-keygen」を実行します。 いくつか聞かれますが、すべてデフォルトで大丈夫です。

> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\hoge/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\hoge/.ssh/id_rsa.
Your public key has been saved in C:\Users\hoge/.ssh/id_rsa.pub.

完了すると、%HOMEPATH%\.ssh 以下に秘密鍵 id_rsa と公開鍵 id_rsa.pub が作成されます。

2. 公開鍵をリモートマシンに登録する。

リモートマシンにログインし、パーミッション700で ~/.ssh を作成します。

mkdir ~/.ssh
chmod 700 ~/.ssh

~/.ssh 以下に作成した公開鍵 id_rsa.pub を配置します。(SCP コマンドなどで転送してください。) 配置できたら、それを authorized_keys に登録します。

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

3. SSH サーバーで公開鍵認証を許可する

/etc/ssh/sshd_config を編集し、公開鍵認証を許可するように PubkeyAuthentication yes に変更します。変更後、SSH サーバーを再起動します。

ディストリビューションやそのバージョンによって、設定ファイルの名前や中身が違うので、/etc/ssh 以下にある設定ファイルを確認して適宜対応してください。 Ubuntu 18.04 では以下で置換できると思いますが、念のため、ファイルを開いて、PubkeyAuthentication yes が追加できたことを確認してください。

sudo sed -i -e "s/#PubkeyAuthentication/PubkeyAuthentication/g" /etc/ssh/sshd_config
sudo service ssh restart

上記の手順で設定は完了です。次回 SSH サーバーに接続した際にパスワードを聞かれなかった場合は上手く設定できています。

4. 接続する

そのホストアドレスへ以前にアクセスしたことがある場合は、Ctrl + Shift + @ で「Open Configulation File…」で config ファイルを開き、該当ホストの設定を削除してください。 Ctrl + Shift + @ で「Add New SSH Host…」コマンドを選択し、ssh <ユーザー名>@<ホスト> -i <秘密鍵 id_rsa のパス> で追加後に、「Connect to Host…」コマンドでアクセスします。

SSH unable to connect – error spawn UNKNOWN

接続した際に SSH unable to connect - error spawn UNKNOWN というエラーが発生する場合、以前にそのホストにアクセスした際の情報が known_hosts に残っているのが原因の可能性があります。一旦、すべての VS Code のウィンドウを終了し、C:\Users\><ユーザー名>\.ssh\known_hosts を削除してください。

コメント

コメントする

目次