【備忘】SSHコマンドで出力されるエラーに色々対応したお話

Linux
スポンサーリンク

Macを開発用に色々チューニングしているのですが、開発用サーバにSSHする際に色々とエラーが起きたので対応したお話です。

単純に言えば、サーバ側のSSHの鍵交換プロトコルとかが古すぎて、クライアント側のデフォルトの設定だとはじかれてしまうことが問題だったのですが、とりあえず備忘として。

 

スポンサーリンク

 出力エラー内容

no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

内容

ChatGPTに聞いてみたところ、

このエラーメッセージは、SSH(Secure Shell)接続の際にキーマッチングエラーが発生していることを示しています。エラーメッセージによれば、相手方は以下の鍵交換方法を提案しています:diffie-hellman-group-exchange-sha1、diffie-hellman-group14-sha1、diffie-hellman-group1-sha1。これらの鍵交換方法は、セキュリティ上の問題があるため、通常は推奨されません。

とのこと。

「セキュリティ上の問題があるため、通常は推奨されません。」が引っかかりますが、諸事情でサーバ側のSSHの設定をいじることはできないので、クライアント側で対応。

解決方法

sshのオプションで鍵交換方法の指定をすることができます。

(例)

ssh hogehoge.com -oKexAlgorithms=diffie-hellman-group-exchange-sha1

 

ちなみに、サーバ側がどの鍵交換方式を使おうとしているかを確認するには、ssh -v オプションを使用します。

ssh hogehoge.com -v

出力

debug1: kex: host key algorithm: diffie-hellman-group-exchange-sha1

こんな感じ。

 

Unable to negotiate with hogehoge.com port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

内容

SSH接続の際にHost Keyタイプの不一致が発生している場合に出力されるエラーです。

このメッセージが出ている場合、サーバ側からはssh-rsa,ssh-dssが要求されています。

 

解決方法

sshのコンフィグに設定を入れればOKです。

今回はhogehoge.comにsshする場合に設定を反映したいので、以下のような設定になります。

ちなみに、sshのコンフィグはデフォルトだと~/.ssh/config になるはず。

Host hogehoge.com
  HostKeyAlgorithms ssh-rsa,ssh-dss

これでssh-rsa,ssh-dssを使えるようになります。

 

sign_and_send_pubkey: no mutual signature supported user@hogehoge.com: Permission denied (publickey,gssapi-with-mic).

内容

ChatGPTさん曰く

このエラーメッセージは、SSHクライアントとサーバーが相互にサポートする署名アルゴリズムが見つからない場合に表示されます。通常、公開鍵認証において、クライアントとサーバーは共通の署名アルゴリズムを使用する必要があります。

とのこと。

あれ、↑で設定したじゃん、と思ったんですが、なんでか使ってくれませんでした。

おそらくですが設定したユーザーとログインしようとしているユーザー(今回はuserというユーザ)が異なっているからだと思われます。

その場合はオプションで指定してあげることができます。

 

解決方法

sshコマンドにて以下のオプションを付けると解決

ssh -o PubkeyAcceptedKeyTypes=ssh-rsa,ssh-dss user@hogehoge.com

 

It is required that your private key files are NOT accessible by others.This private key will be ignored.Load key “ssh/user.key”: bad permissionsuser@hogehoge.com: Permission denied (publickey,gssapi-with-mic).

内容

これは鍵認証ログインで秘密鍵を指定した際に発生したエラー。

秘密鍵の権限が良くないですって怒られています。

基本的に、秘密鍵のパーミッションは600にしておかないといけないため、以下のコマンドで権限を変更します。

 

解決方法

単純にchmodするだけ。

chmod 600 ssh/user.key

 

Youtubeチャンネル作成しました!

主にFPSゲームのプレイ動画を投稿しております
良ければ登録よろしくお願いいたします
Linux
スポンサーリンク
vatchをフォローする
ばちブロ

コメント

タイトルとURLをコピーしました