9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クラベスAdvent Calendar 2024

Day 4

OpenSSHのバージョン差異で私だけSSH接続ができなかった問題

Posted at

概要

サーバにSSH接続を試みたところ、接続に失敗。
メンバーに試してもらうと、同じpemを使用して接続に成功したためローカル環境依存だとはわかった。
しかし、エラーメッセージからは何が原因か判断できず解決に時間がかかったお話。

結論

OpenSSHのリリースノートを確認すると、
OpenSSH 8.8以降はデフォルトでRSAのSSH接続が無効になっていた。

一時的な回避策としては、下記オプションを設定することで接続が可能。(非推奨)

ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa {接続先}

さらに、~/.ssh/configにこの設定を追加することで、
SSHコマンド実行時に設定が不要になる。(非推奨)

Host {接続先}
  HostKeyAlgorithms=+ssh-rsa
  PubkeyAcceptedAlgorithms=+ssh-rsa

経緯

サーバ接続時に下記エラーが発生。

ssh -i ~/.ssh/XXX.pem {接続先}
sign_and_send_pubkey: no mutual signature supported
{ユーザ名}@{接続先IPアドレス}: Permission denied (publickey).

Permission Deniedを鵜呑みにしてしまったため、見当違いの調査を行なってしまった。

また、自社のメンバーに接続を試してもらった所、
接続に成功したため逆に謎が深まった。

解決したきっかけは別サーバにて接続を試した際に、
下記のエラーが出力されたため。

ssh -i ~/.ssh/XXX.pem {接続先}
Unable to negotiate with {接続先IP} port XXXX: no matching host key type found. Their offer: ssh-rsa,ssh-dss

OpenSSHのバージョンが原因で自分だけ接続できないことがわかった。 
OpenSSHのリリースノート

OpenSSHのバージョンを確認し、バージョンが8.8以降であることを確認。

ssh -V
OpenSSH_9.7p1, LibreSSL X.X.X

一時的な対応として、-oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsaを加えることで無事接続成功。

ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa {接続先}

まとめ

ssh-keygenコマンドで-t rsaはしない。
既存の鍵がRSAの暗号化方式の場合、置き換えを検討する。
この回避策は暫定対応とすること。

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?