投稿日 : 2025年6月19日

【sshエラー】sign_and_send_pubkey: no mutual signature supported / Permission denied (publickey).

【sshエラー】sign_and_send_pubkey: no mutual signature supported / Permission denied (publickey).の画像

ある日、sshの設定をしてつなげようとしたら、こんなエラーが…

sign_and_send_pubkey: no mutual signature supported
xxx@xxx.xxx.xxx: Permission denied (publickey).

アクセス拒否されています。別のマシンではつながるのに、特定のマシンだけつながらなくなりました。

原因:クライアントのOpenSSHのバージョンが古い

ホスト側のOpenSSHのバージョンが高くて、クライアントのバージョンが古いと発生する事象でした。

ホスト側(自分)のバージョン

ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.12, OpenSSL 3.0.13 30 Jan 2024

でしたが、相手方のバージョンはOpenSSH_5.3p1。そのために発生していたんですね。

対処法:+ssh-rsa

相手方のOpenSSHバージョンをあげられれば一番いいのですが、大人の事情でそうもいかない。でも接続したい。

そんなときは.ssh/configに追記です。

  HostKeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa

ここのアクセス先はssh-rsaを使ってくださいね、と明示してあげると接続できるようになります。

v8からssh-rsaがデフォルト無効になった

セキュリティの問題で、ssh-rsa方式がデフォルト無効になったようです。

そのため古いOpenSSHを使っているところにsshするときには「ssh-rsa暗号方式を使いますよ」と書かないと接続できなくなってしまうのですね。

大人の事情も色々あるので難しいところではありますが、セキュリティに関することなのでなるべく可能ならクライアント側もバージョンをあげたいところですね。

問題のなかった別のマシンはv7だった

ではなんで別のマシンはつながっていたのか?というと、このマシンのOpenSSHバージョンが7だったから。

v8以前だからエラーもなく使えていただけですね。

PR

※本サイトはアフィリエイトプログラムを利用して商品を紹介しています。