人気記事

IT全般 VSCode

VSCodeの公開鍵認証によるリモートSSH手順

投稿日:

手順を忘れていつも調べてしまうためメモ。

ここではクライアント側(MacBook)からサーバ側(RaspberryPi)に接続する例を示す。

詳細は公式サイトを参照

https://code.visualstudio.com/docs/remote/ssh

スポンサーリンク

鍵作成

  1. クライアント側のマシンで鍵を作成
ssh-keygen -t rsa -b 2048

ホームディレクトリの .ssh 配下に 秘密鍵(id_rsa) と 公開鍵(id_rsa.pub)が作成される。
秘密鍵が流出したらサーバ側に自由にSSH接続され得るため、厳重管理。

$ ls -la .ssh
drwx------   14 mac  staff   448 12 28 12:47 .
drwxr-xr-x@ 160 mac  staff  5120 11 26 13:55 ..
-rw-------    1 mac  staff  3401 12 28 12:47 id_rsa
-rw-r--r--    1 mac  staff   752 12 28 12:47 id_rsa.pub

     2. 公開鍵をサーバ側のホームディレクトリ直下の .sshディレクトリ (もし無ければ作成)に転送する

     3.  転送後 ~/.ssh/id_rsa.pub となるため、~/.ssh/authorized_keys にリネームする

  4.  権限設定を行う (忘れがちのため注意。設定しないとPermission deniedとなりSSH接続できない)

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_key

ここまでで鍵設定は完了。

VSCode設定

1.  VSCodeの拡張機能からRemote-SSHをインストール

  

2. ウインドウ左下の >< からリモートウインドウを開き、ホストに接続する

3. SSHホストを構成するをクリック

(グレーで塗りつぶした箇所には以前作成したホスト名が表示されている)

4. 一番上のファイルを選択

5. 以下のようにリモート接続設定を記述する

 Host:VSCodeのリモート接続先に表示される名前

 HostName:リモート接続する機器のIPアドレス

 User:リモート接続する機器のユーザー名

 IdentitiyFile:クライアント側の秘密鍵のフルパス

Host RaspberryPi
    HostName 172.16.11.81
    User pi
    Port 22
    StrictHostKeyChecking no
	PasswordAuthentication no
	PreferredAuthentications publickey
	IdentityFile /Users/mac/.ssh/id_rsa
	IdentitiesOnly yes

6. 再び、左下の >< のようなアイコンをクリックしてリモートウインドウを開き、ホストに接続するをクリックし一覧に表示されたRaspberryPi(5.で作成したホスト名)をクリックすると、リモートのサーバに接続できる

接続に失敗した時は

サーバ側(今回のRaspberryPi)で以下のauth.logを確認する。

私の場合には、鍵作成の4.権限設定ができていない時に以下の「Authentication refused: bad ownership」といったログが出力された。

cat /var/log/auth.log

Dec 28 13:09:02 pi sshd[6784]: Authentication refused: bad ownership or modes for directory /home/pi/.ssh
Dec 28 13:09:02 pi sshd[6784]: Connection closed by authenticating user pi 172.16.11.81 port 63689 [preauth]

以上

-IT全般, VSCode

Copyright© ITエンジニアへの転身 , 2024 All Rights Reserved Powered by STINGER.