sshd_configにHostKeyAlgorithmsを追加する
FX File ExplorerというスマホアプリでSSH接続でLinux PCにアクセスしてファイル転送しようとしたら、サーバー側で下記のエラーが出て失敗する。
1月 04 21:00:10 hostname sshd[32154]: Unable to negotiate with 192.168.0.XXX port XXX: no matching host key type found. Their offer: ssh-rsa,ssh-dss [preauth]
OpenSSH 8.8よりSHA-1 ハッシュアルゴリズムを使用したRSA 署名 (ssh-rsa) がデフォルトで無効になり、クライアント側(FX File Explorer)が対応できていないことが原因。
This release disables RSA signatures using the SHA-1 hash algorithm by default.
サーバー側で受け入れるアルゴリズムにssh-rsa
を追加してsshdを再起動。
/etc/ssh/sshd_config
HostKeyAlgorithms ssh-rsa,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256
※ HostKeyAlgorithms
の後ろはタブ、各パラメータ間にスペースを入れてはいけない。
# systemctl restart sshd.service
デフォルトのものはman sshd_config
または公式ページを参照
もちろん可能ならSHA1を使用しないクライアントを探すべき。
Fx File Explorerの設定を探してもアルゴリズムなどを変更する箇所は見当たらなかった。
最終更新日が2021/03/07になってたからやっぱ対応してないのかな(OpenSSH 8.8は2021-09-26リリース)。新しいのを探そう。