背景

Ubuntu22.04に対して公開鍵暗号方式でsshしたいというリクエストありました。

その手順を調べたので、以下に記録します。

手順

公開鍵暗号方式の有効化

以下を編集する。

sudo vi /etc/ssh/sshd_config

有効にする。

PubkeyAuthentication yes

構文をチェック

sudo /usr/sbin/sshd -t

sudoをつけないと、以下のようなメッセージが出力される場合がある。

sshd: no hostkeys available -- exiting.

鍵の生成

ssh-keygen -t ed25519

以下のようなメッセージが出力されて、パスフレーズなどを聞かれるが、パスフレーズは入れない。

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_ed25519): 
Created directory '/home/ubuntu/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ubuntu/.ssh/id_ed25519
Your public key has been saved in /home/ubuntu/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:KLWc+MfNKWklZl8LAP29dbFj0XQHVHJg8wyBbHNTZ7o ubuntu@ik1-338-29121
The key's randomart image is:
+--[ED25519 256]--+
|      ..   . oXB@|
|       ..   =.o%=|
|      . .. o o..*|
|     + + .. . .=.|
|    o = S o .oE..|
|     o + B +..   |
|      . * = .    |
|       o .       |
|                 |
+----[SHA256]-----+

authorized_keysの作成

cd .ssh
cp id_ed25519.pub authorized_keys

秘密鍵をダウンロード

scp ubuntu@ik1-338-29121.vs.sakura.ne.jp:/home/ubuntu/.ssh/id_ed25519 ./

sshd_configの編集

sudo vi /etc/ssh/sshd_config

以下のコメントを外す。

HostKey /etc/ssh/ssh_host_ed25519_key

PasswordAuthentication no

構文チェック

sudo /usr/sbin/sshd -t

sshdの再起動

sudo service ssh restart

ログイン確認

ssh ubuntu@ik1-338-29121.vs.sakura.ne.jp -i ./id_ed25519