2012年4月2日月曜日

CentOS5.8にopenSSH5.9をインストール


CentOS付属のopenSSHのバージョンが古いので、一旦アンインストールして入れ替える。

作業はすべてrootで行います。

telnet有効化

# yum -y install telnet-server
# /sbin/chkconfig telnet on
# /etc/init.d/xinetd restart

実機から操作できない場合は一旦telnetでログインできるようにtelnetを有効にする。
ファイアーウォールやSElinuxをチェックした上で、接続できない場合、ホスト名が正しく設定されていない場合がある。

/etc/sysconfig/network のHOSTNAME
・/etc/hosts の 127.0.0.1


にホスト名が設定されているか確認する。



openSSHの入れ替え

端末で現在のバージョンを削除

yum -y remove openssh

新しいバージョンをインストールするために必要なパッケージをインストール

yum -y install pam-devel

最新版のソースを取得

wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz

アーカイブを解凍

tar xzvf ./openssh-5.9p1.tar.gz

解凍されたファイルの「./openssh-5.9p1/contrib/redhat/openssh.spec」を編集


%define no_x11_askpass 0  ⇒ 1 に変更↓
%define no_gnome_askpass 0 ⇒ 1 に変更
%configure \ ⇒の次の行に
configure --without-zlib-version-check \ ⇒ を挿入
%doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* PROTOCOL* TODO WARNING*
⇒ の WARNING* を削除
>
./openssh-5.9p1/contrib/ 以下にある、redhat以外のディレクトリを削除

# rm -Rf aix
# rm -Rf caldera/
# rm -Rf cygwin/
# rm -Rf hpux/
# rm -Rf solaris/
# rm -Rf suse/

展開したディレクトリを再圧縮します。

# tar czvf ./openssh-5.9p1.tar.gz ./openssh-5.9p1/
ディレクトリを削除

# rm -Rf  openssh-5.9p1
rpmパッケージを作ります。

# rpmbuild -tb --clean openssh-5.9p1.tar.gz
rpmbuildがインストールされていない場合は

# yum -y install rpm-build
rpmbuildしようとすると依存性の失敗というエラーが出る場合がある

エラー: ビルド依存性の失敗:
openssl-devel は openssh-5.9p1-1.i386 に必要とされています
glibc-devel は openssh-5.9p1-1.i386 に必要とされています
krb5-devel は openssh-5.9p1-1.i386 に必要とされています
「○○ は openssh-5.9p1-1.i386 に必要とされています」の「○○」をyumでインストールすればOK

ビルドの最後のほうに出たエラー

configure: error: in `/usr/src/redhat/BUILD/openssh-5.9p1':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
エラー: /var/tmp/rpm-tmp.98471 の不正な終了ステータス (%build)
RPM ビルドエラー:
/var/tmp/rpm-tmp.98471 の不正な終了ステータス (%build)
はCのコンパイラがインストールされていないことが原因なので

# yum install gcc

でCコンパイラをインストールすればOK

ビルドが成功したら、ログに書かれているディレクトリから3つのパッケージをインストール

rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-5.9p1-1.i386.rpmUvh
rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-clients-5.9p1-1.i386.rpm
rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-server-5.9p1-1.i386.rpm
要らないファイルを削除し後始末


rm -Rf ./openssh-5.9p1/
rm -f ./openssh-5.9p1.tar.gz
rm -f /usr/src/redhat/RPMS/i386/openssh-*

sshdの起動

/etc/rc.d/init.d/sshd start
自動起動設定

/sbin/chkconfig sshd on
SSHでログインを確認して、telnet接続を削除

/sbin/chkconfig xinetd off
/etc/rc.d/init.d/xinetd restart
yum -y remove telnet-server

これでインストール作業が一旦終了!

0 件のコメント: