■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=