SSHは交渉できません。一致する鍵交換方法が見つかりません。

SSHは交渉できません。一致する鍵交換方法が見つかりません。

コマンドラインメールの使用に問題があるため、DSLルーターにログインしようとしています。ルーターを再構成したい。

sshコマンドを実行すると、次のことが発生します。

$ ssh [email protected]

Unable to negotiate with 10.255.252.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

それから見てこのスタック交換ポスト、これを行うようにコマンドを修正しましたが、今回はパスワードに関して他の問題が発生しました。

$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 [email protected]

Unable to negotiate with 10.255.252.1 port 22: no matching cipher found. Their offer: 3des-cbc

だからコツがあります。供給 3des-cbc暗号化?私は3desを私のシステムに永久に追加したいかどうかわかりません。

パスワードを許可するコマンドはありますか3des-cbc

ここで問題は何ですか?パスワードを求められません。

ベストアンサー1

この特定のエラーは、暗号化されたチャネルを設定したときに発生します。システムとリモートシステムが1つ以上のパスワードを共有していない場合、合意されたパスワードに同意できず、暗号化されたチャネルが存在できません。通常、SSH サーバーは、さまざまなクライアントのニーズに合わせていくつかの異なるパスワードを提供します。サーバーが3DES-CBCのみを許可するように構成されている理由は不明です。

今、3DES-CBCはひどいものではありません。遅いですが提供しています。安全性が低い他のアルゴリズムと比較すると、キーを正しく選択するとすぐにクラックしません。CBC自体にもいくつかの問題があります。暗号文は転送中に変更される可能性がありますが、それによって引き起こされる破損はSSHのHMACによって拒否され、影響が軽減されると強く疑っています。全体として、3DES-CBCよりも悪いオプションもあり、より良いオプションもあります。しかし、パスワードや鍵交換アルゴリズムの選択など、セキュリティ関連のデフォルト値を上書きするときは注意してください。これらのデフォルト値には理由があります。いくつかの非常にスマートな人々は、これらのオプションについて考え、デフォルトとして選択されたオプションは、最高の全体的なセキュリティとパフォーマンスのバランスを提供すると判断しました。

見つけたように-c ...(または-oCiphers=...)を使用して、クライアントが提供するパスワードを指定できます。この場合は、クライアントが-c 3des-cbc3DES-CBCのみを許可するように追加してください。これはサーバーによって提供されたパスワードと一致するため、暗号化されたチャネルが確立され、接続が認証フェーズに入ります。

~/.ssh/configローカルの問題を解決するためにグローバルな変更をしたくない場合は、セクションに追加することもHostできます。たとえば、SSH設定が現在表示されている場合(ダミーの例):

Port 9922

デフォルト値22の代わりにグローバルデフォルトポート9922を指定すると、特別な設定が必要なホストのホストセクションと、デフォルトのケースのグローバルホストセクションを追加できます。それは次のように変わります...

Host 10.255.252.1
    Ciphers 3des-cbc
    KexAlgorithms +diffie-hellman-group1-sha1
Host *
    Port 9922

インデントはオプションですが、読みやすさが大幅に向上します。空行とで始まる行は#無視されます。

このシステムで常に(またはほとんど)同じユーザーとしてログインしている場合は、そのユーザー名を指定することもできます。

Host 10.255.252.1
    Ciphers 3des-cbc
    KexAlgorithms +diffie-hellman-group1-sha1
    User enduser
Host *
    Port 9922

~/.ssh/config に何もない場合は、Host *スタンザを追加する必要はありません。これは、コンパイルまたはシステム全体のデフォルト値(通常は/etc/ssh/ssh_config)のみが使用されるためです。

この時点で、ホストに接続するためのSSHコマンドラインは単純なコマンドラインに縮小されます。

$ ssh 10.255.252.1

システムの他のすべてのユーザーと他のすべてのホストへのシステム接続は、変更の影響を受けません。

おすすめ記事