JavaのWeb環境をCentos7にしたらCould not open session channel

pc関連tips

CentOS7に移行する環境もぼちぼち増えてきました。

障害事象

tomcatで動かしていたjavaのサーブレット、CentOS7に移行したら
以下のエラーで動かなくなってしまった。
sshを使う部分。

java.io.IOException: Could not open session channel (Connection is being shutdown)
at ch.ethz.ssh2.channel.ChannelManager.createSessionChannel(ChannelManager.java:328)
at ch.ethz.ssh2.Session.(Session.java:32)
at ch.ethz.ssh2.Connection.openSession(Connection.java:692)(以下略)

原因

原因は、javaからsshするために使用していた「ganymed-ssh2-build208.jar」がopensshのバージョンアップについていけてなかったこと。
openssh6迄→いける
openssh7→上記エラーになる…Cent7のどこかから、opensshも7がデフォになってるのかな?

対応

使用していたのが「ganymed-ssh2-build208.jar」だったので、最新の「ganymed-ssh2-build210.jar」に差し替えたら動いた!
これ、最新と言っても大分古くて最終更新が2006-10-06。
解消して良かった…

どっちが正式なサイトなのかよくわかりませんが…同じものが置いてあるようです。
http://www.ganymed.ethz.ch/ssh2/
https://www.cleondris.com/opensource/ssh2/

だいーぶ古いjarなので、別の方法でsshするようになおした方がいいんだろうけど、とりあえず今回はこれで良し。
なんか、opensshがチャネルセッションを作るときにかえしてくる値が、どうも7から変更されているようですね(?)。
ganymed-ssh2-build208.jarはそれに対応できていなくて、セッションは正しく開けているのですが、戻り値の判定に従いすぐにcloseしていました。

対象になる人はほぼいなさそうなかなり局所的なTIPSですが備忘録として記載しておきます。

コメント

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