====== 2022.03.08 SSH Error no hostkey alg ======
古いOSからSSHした時に、下記のエラーで接続できない場合がある
RHEL6 から RHEL8とか
RHEL6側がECDSA 接続に対応する必要がある。
makeとかする必要はありますが、[[#3.クライアントのSSHを新しくする]] が一番シンプルかもしれません。
===== エラー =====
$ ssh 10.10.0.25
no hostkey alg
===== 対応 =====
==== 1.ECDSAの鍵を作成する方法 ====
ssh-keygen -t ecdsa -b 256
秘密鍵と公開鍵はこれ
$ ls .ssh/id_ecdsa*
.ssh/id_ecdsa .ssh/id_ecdsa.pub
==== ECDSAで接続する設定 ====
パスワード認証はこれでいける。
ECDSAで接続するように設定してあげれば接続可能
Host 10.10.0.25
HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
==== ワイルドカードも利用できる ====
Host 10.10.10.*
HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
===== 2.サーバ側で対応 =====
==== sshd_configへ追加 ====
cat << __EOM__ >> /etc/ssh/sshd_config
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
__EOM__
==== sshd再起動 ====
systemctl restart ssh.service
===== 3.クライアントのSSHを新しくする =====
ここから、新しいopensshをダウンロード
[[http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/]]
$ tar zxvf openssh-8.0p1.tar.gz
$ cd openssh-8.0p1
$ ./configure
$ make
# cp ssh /usr/local/bin/ssh
エイリアスに書いておく
$ cat .bashrc
alias ssh='/usr/local/bin/ssh'
$ ssh -V
OpenSSH_9.2p1, OpenSSL 1.0.2k-fips 26 Jan 2017
{{tag>日記 SSH}}