BLOGTIMES
2016/10/24

no common kex alg と言われたので Dropbear で回避してみた

  solaris  ssh  cli  esxi 
このエントリーをはてなブックマークに追加

ESXi 6u2 に古めの Solaris から ssh 接続しようとしたら、以下のようなエラーを吐いて接続できなくて困りました。

$ ssh esxi11 no common kex alg: client 'diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1', server 'curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1' $ ssh -V Sun_SSH_1.5, SSH protocols 1.5/2.0, OpenSSL 0x009080bf

Solaris 側の SSH のバージョンがかなり古いので仕方ありませんが、ESXi 6u2 が古い鍵交換のアルゴリズムをサポートしなくなったのが原因ようです。
ssh を入れ直してもいいのですが、他の部分に影響が出ても困るので、軽量な Dropbear SSH をビルドして回避することにしました。

インストールはこんな感じ。
なぜかビルドに失敗してしまうので、こんな感じでオプションをいろいろつけてあります。

wget https://matt.ucc.asn.au/dropbear/dropbear-2016.74.tar.bz2 tar jxvf dropbear-2016.74.tar.bz2 cd dropbear-2016.74 LDFLAGS="-L/lib -R/lib" ./configure make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 install

ファイルの書き換えも1箇所必要でした。

$ diff -u compat.h.org compat.h

--- compat.h.org 2016-07-22 00:17:09.000000000 +0900 +++ compat.h 2016-10-24 20:31:39.681955597 +0900 @@ -51,6 +51,7 @@ #ifndef DROPBEAR_PATH_DEVNULL #define DROPBEAR_PATH_DEVNULL "/dev/null" +#define _PATH_DEVNULL "/dev/null" #endif #endif /* DROPBEAR_COMPAT_H_ */

インストールが終わったら ssh コマンドの代替の dbclient コマンドを使って ssh 接続ができるはずです。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/8869
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン