くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

[解決] freebsd-update したら ssh 接続できなくなった

2012-03-07 15:29:58 | SEまわり
解決した。

freebsd-update 後、sudo コマンドでこんなエラーが出ていたのを思い出した。

 
% sudo -s
Shared object "libutil.so.8" not found, required by "sudo"


これを、

 
% ln -s /lib/libutil.so.9 /lib/libutil.so.9


という雑な逃げ方でかわしたのが悪かったみたい。

sudo はこれで動作するようになるんだけど、sshd はダメだったというのが直接の原因。

で、sudo を portupgrade で上げたところ、libutil.so.8 じゃなく、新しい 9 を要求するようになったので OK。 ただ、OpenSSH は ports じゃなくて手動でコンパイルしているので、それを改めてやってみたところ、以下のような刺さり方をする。

 
# make
(cd openbsd-compat && make)
gcc -g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wno-pointer-sign -fno-strict-aliasing -fno-builtin-memset -fstack-protector-all -I. -I.. -I. -I./.. -I/usr/local/openssl -I/usr/local/include -DHAVE_CONFIG_H -c bsd-openpty.c
bsd-openpty.c: In function 'openpty':
bsd-openpty.c:128: error: 'I_PUSH' undeclared (first use in this function)
bsd-openpty.c:128: error: (Each undeclared identifier is reported only once
bsd-openpty.c:128: error: for each function it appears in.)
*** Error code 1

Stop in /usr/local/src/openssh-5.9p1/openbsd-compat.
*** Error code 1

Stop in /usr/local/src/openssh-5.9p1.


configure のオプションはこんな感じ。

 
./configure --without-pam --with-zlib=/usr/local --with-ssl-dir=/usr/local/openssl


これで進まなくなったけど、libutil.so.8 について調べていると、misc/compat8 を入れれば問題ないというのを見つけ、早速インストール

 
cd /usr/ports/misc/compat8
 make install clean distclean


で、sshd を再起動したら、リモートからの ssh もできるようになった。

メジャーバージョンアップしたら互換性は意識しとかないとなあ… 反省。



なお、いろいろ調べていく過程で以下のページと、そこにあるスクリプトが便利で助かりました。

 FreeBSD Daily Topics:2010年1月18日 ≪注意≫utmp(5)からutmpxへ切り替え - Ports Collectionからインストールしたアプリケーションは個別に対処が必要|gihyo.jp … 技術評論社


最新の画像もっと見る