■ssh鍵ペア作成(ホスト、ユーザ、鍵仕様など)
[dagyah2@centos7 ~]$ hostname;whoami;pwd
centos7.dagyah.com
dagyah2
/home/dagyah2
[dagyah2@centos7 ~]$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[dagyah2@centos7 ~]$ ssh-keygen -t rsa -b 2048 -f ~/.ssh/RSA_2048_`hostname`_`whoami`
Generating public/private rsa key pair.
Created directory '/home/dagyah2/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dagyah2/.ssh/RSA_2048_centos7.dagyah.com_dagyah2.
Your public key has been saved in /home/dagyah2/.ssh/RSA_2048_centos7.dagyah.com_dagyah2.pub.
The key fingerprint is:
SHA256:KQHRNV5grVyz7uzMnJTLKHYIReclxVMHT0M328v1cFo dagyah2@centos7.dagyah.com
The key's randomart image is:
+---[RSA 2048]----+
| oo .==o.oo=..|
| .ooooB + o+|
| ..+.= + o.E|
| ..+.. .=+|
| .. S. .o.|
| . . .. |
| . . oo |
| + .Boo |
| . o..O |
+----[SHA256]-----+
[dagyah2@centos7 ~]$ ls -l /home/dagyah2/.ssh
total 8
-rw-------. 1 dagyah2 dagyah2 1675 Jun 6 22:43 RSA_2048_centos7.dagyah.com_dagyah2
-rw-r--r--. 1 dagyah2 dagyah2 408 Jun 6 22:43 RSA_2048_centos7.dagyah.com_dagyah2.pub
[dagyah2@centos7 .ssh]$ cat RSA_2048_centos7.dagyah.com_dagyah2.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC54fLJeaEPUmnNCh1hDwXnxxpptI0q7D42/HH42DEFFKRDYj9irTyg7aQUB9bdwLLf9BawZs4pP83yFyZdxwXWIeLrTWdOO/BxHbNuU2LeNUxas/u4e2UgsrLo8BGQKpqACbkmy3Ii1VD4Dx6HMlZqmGCj8hZ6X+KHmGfHCG8S8vuKfqklJvaNG5Ify249L5VKsSSrjov9+ZSZpuZl6+Uc/O9k3ED/sMmkeaPxHh91Kjna7Fg0zmG+EIGU6bAmiwt6NbgPYATOeh0j/j6dVfF39GO9oytAScuL8s7zNxM5GRe+/GRNnc1gXjqWI/r9EQyt/rmNQ/32NVjGiUUhI/WD dagyah2@centos7.dagyah.com
→「centos7.dagyah.com」ホストで「dagyah2」ユーザで作成したssh鍵ペアを他のホストで使用するために上記鍵ペアをsshクライアント側ホストにコピー
※ssh公開鍵に記載されているユーザ名(dagyah2)とホスト名(centos7.dagyah.com)は実際にssh接続をする際の接続元や接続先と全く関係なくてもよい。
■ssh接続元ホスト(sshクライアント)
[client_user@cetnos7_1 ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[client_user@cetnos7_1 ~]$ hostname;whoami;pwd
cetnos7_1
client_user
/home/client_user
■ssh接続先ホスト(sshサーバ)
[server_user@centos7_2 ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[server_user@centos7_2 ~]$ hostname;whoami;pwd
centos7_2
server_user
/home/server_user
■sshクライアント側ホストにssh鍵ペアをアップロード
・.sshディレクトリを作成して所有者とパーミッションを下記のように変更
[root@cetnos7_1 client_user]# pwd;ls -ld .ssh
/home/client_user
drwx------. 2 client_user client_user 96 6月 7 17:57 .ssh
・秘密鍵と公開鍵を下記の場所にコピーして所有者とパーミッションを下記のように変更
[root@cetnos7_1 client_user]# pwd;ls -l .ssh
/home/client_user
合計 8
-rw-------. 1 client_user client_user 1675 6月 7 17:57 RSA_2048_centos7.dagyah.com_dagyah2
-rw-r--r--. 1 client_user client_user 408 6月 7 17:57 RSA_2048_centos7.dagyah.com_dagyah2.pub
■sshサーバ側ホストのauthorized_keysファイルにsshクライアント側の公開鍵を追記
・sshクライアントの公開鍵をsshサーバのauthorized_keysファイルに追記
[server_user@centos7_2 ~]$ pwd;ls -la
/home/server_user
合計 12
drwx------. 3 server_user server_user 74 6月 7 18:06 .
drwxr-xr-x. 4 root root 39 6月 7 17:38 ..
-rw-r--r--. 1 server_user server_user 18 4月 1 2020 .bash_logout
-rw-r--r--. 1 server_user server_user 193 4月 1 2020 .bash_profile
-rw-r--r--. 1 server_user server_user 231 4月 1 2020 .bashrc
drwx------. 2 server_user server_user 6 6月 7 18:06 .ssh
[server_user@centos7_2 ~]$ cat >> .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC54fLJeaEPUmnNCh1hDwXnxxpptI0q7D42/HH42DEFFKRDYj9irTyg7aQUB9bdwLLf9BawZs4pP83yFyZdxwXWIeLrTWdOO/BxHbNuU2LeNUxas/u4e2UgsrLo8BGQKpqACbkmy3Ii1VD4Dx6HMlZqmGCj8hZ6X+KHmGfHCG8S8vuKfqklJvaNG5Ify249L5VKsSSrjov9+ZSZpuZl6+Uc/O9k3ED/sMmkeaPxHh91Kjna7Fg0zmG+EIGU6bAmiwt6NbgPYATOeh0j/j6dVfF39GO9oytAScuL8s7zNxM5GRe+/GRNnc1gXjqWI/r9EQyt/rmNQ/32NVjGiUUhI/WD dagyah2@centos7.dagyah.com
^C
・authorized_keysファイルのパーミッションを下記のように変更
[server_user@centos7_2 ~]$ chmod 600 .ssh/authorized_keys
[server_user@centos7_2 ~]$ ls -l .ssh
合計 4
-rw-------. 1 server_user server_user 408 6月 7 18:10 authorized_keys
■sshクライアント側での鍵ファイル名指定
※デフォルトだと「id_rsa」と「id_rsa.pub」とかの鍵名しか受け付けない
[root@cetnos7_1 ssh]# pwd;diff ssh_config{,.bak}
/etc/ssh
58,59d57
< IdentityFile ~/.ssh/RSA_2048_centos7.dagyah.com_dagyah2
<
■sshサーバ側で公開鍵認証によるSSH接続の許可
・sshd_configの「PubkeyAuthentication yes」の注釈を外して、
「PasswordAuthentication no」にしてsshd再起動
[root@centos7_2 ssh]# pwd;diff sshd_config{,.bak}
/etc/ssh
44d43
< PubkeyAuthentication yes
66c65
< PasswordAuthentication no
---
> PasswordAuthentication yes
[root@centos7_2 ssh]# systemctl restart sshd;echo $?
0
■公開鍵認証によるSSH接続
[client_user@cetnos7_1 ~]$ hostname;whoami
cetnos7_1
client_user
[client_user@cetnos7_1 .ssh]$ ssh server_user@192.168.100.72 whoami
The authenticity of host '192.168.100.72 (192.168.100.72)' can't be established.
ECDSA key fingerprint is SHA256:zMu6bgdzJqnmzXAbotndApM3hHIvLf3DSwgnszv7oHM.
ECDSA key fingerprint is MD5:d2:2a:33:a8:67:f8:b9:f0:4b:b3:c3:3f:2c:cb:80:62.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.72' (ECDSA) to the list of known hosts.
server_user
[client_user@cetnos7_1 ~]$ ssh server_user@192.168.100.72 hostname;whoami
centos7_2
client_user
・初回接続時にホスト認証鍵がクライアント側接続元ユーザのknown_hostsファイルに書き込まれる
[client_user@cetnos7_1 .ssh]$ pwd;ls -l
/home/client_user/.ssh
合計 12
-rw-------. 1 client_user client_user 1675 6月 7 17:57 RSA_2048_centos7.dagyah.com_dagyah2
-rw-r--r--. 1 client_user client_user 408 6月 7 17:57 RSA_2048_centos7.dagyah.com_dagyah2.pub
-rw-r--r--. 1 client_user client_user 176 6月 7 19:10 known_hosts
[client_user@cetnos7_1 .ssh]$ cat /home/client_user/.ssh/known_hosts
192.168.100.72 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMOcZglqX0ZYz34aTgXVbSDE1Yu2xLgdlV6FAPSMJ4nAXk/dLggUQtLcfA5dJOrO3eCtJmEQflMPxjr0zpe0RzM=