CentOS 8系でSSHのパスワードログインができなかった

CentOS6から下記の方法で、サーバー間はパスワードなしでログインしていました

  • 接続先(サーバー)IP:192.168.0.10
  • 接続元(クライアント)IP:192.168.0.20
  • ユーザー:admin
# [接続先:192.168.0.10]
# 接続先サーバーで公開鍵認証を許可する
$ sudo vim /etc/ssh/sshd_config
PubkeyAuthentication yes
$ sudo systemctl restart sshd

# [接続元:192.168.0.20]
# DSA形式の鍵を発行する
$ ssh-keygen -t dsa

# [接続元:192.168.0.20]
# 公開鍵をログイン先のサーバー(192.168.0.10)を登録
$ ssh -p 19422 -l admin 192.168.0.10 touch /home/admin/.ssh/authorized_keys
$ ssh -p 19422 -l admin 192.168.0.10 chmod 600 /home/admin/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub | ssh -l admin 192.168.0.10 'cat >> '/home/expdev/.ssh/authorized_keys

CentOS 7間では上記の方法でパスワード無しでログインできましたが、CentOS 7 => CentOS 8系だとログインできません。何度やってもパスワードをSSH接続時にパスワードを求められます

色々調べるとCentOS 8系だと、「DSA」形式のパスワード無しのログインができないようです。「RSA」、「ECDSA」、「EdDSA」とかだとはパスワードなしのログインが可能用ですので、「ECDSA」形式で公開鍵を用意してパスワードなしのログインするように変更しました

# [接続先:192.168.0.10]
# 接続先サーバーで公開鍵認証を許可する
$ sudo vim /etc/ssh/sshd_config
PubkeyAuthentication yes
$ sudo systemctl restart sshd

# [接続元:192.168.0.20]
# ECDSA形式の鍵を発行する
$ ssh-keygen -t ecdsa

# [接続元:192.168.0.20]
# 公開鍵をログイン先のサーバー(192.168.0.10)を登録
$ ssh -p 19422 -l admin 192.168.0.10 touch /home/admin/.ssh/authorized_keys
$ ssh -p 19422 -l admin 192.168.0.10 chmod 600 /home/admin/.ssh/authorized_keys
$ cat ~/.ssh/id_ecdsa.pub | ssh -l admin 192.168.0.10 'cat >> '/home/admin/.ssh/authorized_keys

ECDSA」形式では、CentOS 8系のサーバーでもパスワードなしのログインするようになりました

LinuxCentOS 8,RockyLinux

Posted by admin