質問
まあ、問題はEl CapitanでPycharmを使用していることです。 Pycharmよりも最新のキー交換アルゴリズムを使用して厳密なログインKexalgorithmsを使用するサーバーに接続しようとしています。〜らしい使用できる機能があります...しかし、ここに問題があります。端末からログインでき、同じバージョンのPycharmがUbuntu 14.04で動作します(そこからログインできます)。
端末でSSHを使用して正常にログインできます。
Pycharmを使用してサーバーにログインしようとすると、「アルゴリズムのネゴシエーションに失敗しました。
これは私の/var/log/messagesのエントリです。
Jan 22 23:15:56 (none) auth.crit sshd[2520]: fatal: Unable to negotiate with 10.10.16.125: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1 [preauth]'
この質問はStackOverflowに登場したものですが、サーバーのsshd_configファイルにこのように非常に古いバージョンのDiffie-Helmanを許可するオプションを追加することで、自分が問題を解決したようです。
この以前のバージョンのDiffie-Helmanをsshd_configに追加する権限がありません。
私は以前Yosemiteにあり、最新のsshとopensslのバージョンがあるので、アップグレードすると問題が解決すると思いましたが、問題は解決しませんでした。
ノート
- Ubuntu 14.04で同じバージョンのPycharmを使用すると接続できます。だからPycharmには問題がないようです。
- そのログエントリを取得するために、MacからサーバーにSSHを接続できました。
質問
これらの新機能を使用するには、SSH対応アプリケーション用の特定の暗号化関連ライブラリを更新する必要がありますか?
答え1
まず:なぜそれが必要ですか?sshfs
仕事をもっとうまくできませんか?
あなたの問題は正反対です。サーバー提供古い(壊れている可能性があります)KeyExchangeメソッド:diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
は現在のバージョンのopensshサーバーではデフォルトではありません。 (そのサーバーは何ですか?システム管理者が通知する場合)厳しいそして最新、真ではなく)クライアントに適している必要があります。
~/.ssh/config
これらのKexメソッドを許可する行に追加する必要があります。
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
アプリケーション内の接続に役立たない場合は、ローカル構成を強制的に使用する他の方法があります。
答え2
ここに戻り、私の質問に答えるのに少し時間がかかりました。
Jschライブラリの更新
Pycharmバージョン4にはバグのあるライブラリが含まれています。このバグは、デフォルトのDiffie-Helman-group1 *パスワード以外の特定のSSHキー交換アルゴリズムを使用するSFTP通信を防ぎます。したがって、Pycharmが仮想マシンと通信できるようにライブラリを更新する必要があります。私たちの仮想マシンは最新のキーの使用のみを許可し、レガシーDiffie-Helman-group1 *パスワードをブロックします。
Pycharm 4には、トランスポートヘルパーファイルに必要なSFTPと通信するために使用されるJschという古いバージョンのJavaライブラリがあります。この問題を解決するには、ライブラリを更新するだけです。
更新されたライブラリは、次のsourceforgeにあります。http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.53/
影響を受けるバージョン
- Mac:パイチャーム<= 5
- Windows:パイチャーム<= 5
- Linux: Pycharm < 4? (このバグはLinuxの4.04には存在しません。)
ステップをダウンロード
- このページ(上部)からJschのコピーをダウンロードしてください。
- 以前のバージョンの削除:jsch-0.1.51.jar sudo rm /Applications/PyCharm.app/Contents/lib/jsch-0.1.51.jar
- 新しいライブラリpycharmディレクトリ(/Applications/PyCharm.app/Contents/lib cp〜/Downloads/jsch-0.1.53.jar /Applications/PyCharm.app/Contents/lib/)をコピーします。
- Pycharmを再起動してください
メモ:この問題はPycharm 5で修正され、アップデートを通じて同僚が修正しましたが、他のJavaベースのアプリケーションがある場合に役立ちます。
メモ:私は最終的にPycharmのログを遅らせてこの事実を見つけました。このライブラリに関する質問を見ることができ、インターネット検索をして、sourceforgeでこのライブラリを見つけました。