0
2

More than 1 year has passed since last update.

vscodeから公開鍵認証でSSH接続を行う

Posted at

背景

今までパスワード認証でvscodeでのSSH接続を行なっていたが、毎回パスワードを打つのも面倒で、スリープモードにしてしまうとまたパスワードを使って認証する必要がある。
そこで公開鍵認証を用いてvscodeからssh接続を行うことにした。

前提

パスワード認証など、別の方法でサーバーにSSH接続できていること。

手順

1.拡張機能のインストール

左のツールバーから拡張機能のアイコンを選択して、検索欄にremoteと入力して、出てきたRemote - SSHをインストールする。

スクリーンショット 2022-06-22 18.19.49.png

2.SSH Keyの作成

ssh-keygen -f ~/.ssh/<key_name>(例では<key_name>はid_rsa_test)を実行して、公開鍵と秘密鍵を作成する。
この時二つのファイルが~/.ssh下に作成され、<key_name>.pubが公開鍵、何も拡張子がついていない<key_name>が秘密鍵。

$ ssh-keygen -f ~/.ssh/id_rsa_test
Enter passphrase (empty for no passphrase):  # Enter
Enter same passphrase again:                 # Enter
Your identification has been saved in /Users/<user_name>/.ssh/id_rsa_test
Your public key has been saved in /Users/<user_name>/.ssh/id_rsa_test.pub
The key fingerprint is:
SHA256:S0gipjugwxk3hawkyLRxWXMJgF9a6b9i9dAq1snR0A <user_name>@hogehoge.local
The key's randomart image is:
+---[RSA 3072]----+
|       E+o=o     |
|      o .+.=     |
|  o ...+  + .    |
| o ..oo.o .+     |
|o. + o.+S==      |
|+.+ + o.=o..     |
|=o   + +.+  o .  |
| o    = + .. o   |
|     .     ..    |
+----[SHA256]-----+
$ cd ~/.ssh
$ ls
id_rsa_test.pub id_rsa_test

今回はSSH Keyの暗号方式が主題ではないため、簡易的な鍵を作成しているが、実際に作成する際にはssh-keygenにオプションを加えた方が良い。

3.SSH Configの設定

/Users/<user_name>/.ssh/configに以下の内容を追加する。

Host hoge
	HostName <server_ip>                                                        # 接続先のIPアドレス
	User <user_name>                                                                # 接続先で使用するUserの名前
	StrictHostKeyChecking no
	PasswordAuthentication no
	PreferredAuthentications publickey
	IdentityFile /Users/<user_name>/.ssh/<key_name> # 先ほど作成した秘密鍵の絶対パス
	IdentitiesOnly yes

Remote - SSHのアイコンを押してリモートエクスプローラーを開き、右上にある歯車からも開ける。
スクリーンショット 2022-06-22 16.19.02.png

4.接続先のサーバーに公開鍵をコピーする。

手順2で作成した<key_name>.pubを接続先の/home/<user_name>/.ssh/authorized_keysにコピーする。

<key_name>.pubをコピーして、vim等でファイルを作成してペーストしても良いのだが、コピーミスや権限問題などが起きる可能性があるため、なるべくsftp等を利用してファイルをそのまま転送するのが良い。

この時、公開鍵のパーミッションが適切でないと公開鍵認証を行えないため、適切にパーミッションを設定する。

$ cd ~/.ssh
$ ls -l # パーミッションの確認
total 4
-rw-rw-r-- 1 <user_name> <user_name> 591 Jun 22 14:46 authorized_keys
$ chmod 600 authorized_keys # 権限修正
$ ls -l # パーミッションが変更されていることの確認
total 4
-rw------- 1 <user_name> <user_name> 591 Jun 22 14:46 authorized_keys

5.vscodeからSSH接続を行う

左下の緑の><をクリックして、ホストに接続する(Connect to Host)を選択し、先ほど作成したホスト名(例はHoge)を選択する。
成功していれば、左下の緑の部分にホスト名が表示されている。

接続に失敗した場合は、パスワード認証でログインし、sudo cat /var/log/auth.logを実行して、エラー原因を探る。
例えば私は、パーミッションの設定がおかしかったため、接続が失敗していた。

$ sudo cat /var/log/auth.log
...
Jun 22 13:57:19 dl-machine sshd[1000]: Authentication refused: bad ownership or modes for file /home/hoge/.ssh/authorized_keys
...

参考資料

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