SSH公開鍵を使ってログインする設定の手順です。
1. クラアント側で公開鍵を作成
$ ssh-keygen
Enter file in which to save the key (/home/username/.ssh/id_rsa): [Enterキー]
Enter passphrase (empty for no passphrase): [Enterキー]
Enter same passphrase again: [Enterキー]
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:*******************************************
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+----[SHA256]-----+
※既に作成済みの場合は飛ばしてください。
※パスフレーズを空欄にしておけばログイン時のパスワード入力は省略できます。
※複数のサーバーで同じ鍵を使い回すことも可能です。
2. 公開鍵をサーバーに転送
scp
で送る場合は次のような感じになります。
(xxx.xxx.xxx.xxx
の部分はサーバーのIPアドレスまたはドメイン名です。)
$ scp .ssh/id_rsa.pub [email protected]:/home/username/
送信できたら、サーバーにログインして次のような感じで登録できます。
$ cat id_rsa.pub .ssh/authorized_keys
$ rm -i id_rsa.pub
以上で設定完了です。
ちなみに、サーバー側に.ssh
ディレクトリがない場合はmkdir
で作成してください。
$ mkdir .ssh
$ chmod 700 .ssh
3. パスワードによるログインを禁止する(おまけ)
パスワード入力によるログインを禁止して、公開鍵でのログインのみ許可するようにしたい場合は/etc/ssh/sshd_config
に以下のような設定を追加してください。
PasswordAuthentication no
セキュリティ的には向上すると思いますが、万が一の場合にもパスワードでログインできなくなるので気を付けてください。
※設定の変更後はsystemctl
などでsshd
の再起動(もしくは設定更新)を忘れずに。