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
これでインストール作業が一旦終了!