以下の作業は、すべてrootで行います。
一度、OpenSSHをアンインストールするため、Telnetでログインできるようにします。
リモートで作業を行わない場合は、この作業は不要です。
# yum -y install telnet-server # chkconfig telnet on # /etc/init.d/xinetd restart
以下の作業はTelnetで23番ポートにログインして行います。
※ 接続できない場合は、23番ポートが開放されているかを確認してください。 また、rootではログインできないため、一般ユーザーでログインして、rootになってください。
# /etc/init.d/sshd stop # yum -y remove openssh
RPM作成に必要なパッケージをインストールします。
# yum -y install pam-devel
このページから最新版のOpenSSHをダウンロードし、回答します。 ここでは、現在(2009年10月21日)の最新版であるopenssh-5.3p1.tar.gzを用います。
# wget http://anga.funkfeuer.at/ftp/pub/OpenBSD/OpenSSH/portable/openssh-5.3p1.tar.gz # tar xzvf ./openssh-5.3p1.tar.gz
適当なエディタで、./openssh-5.3p1/contrib/redhat/openssh.spec ファイルを開き、以下の設定を書き換えます。
x_11_askpassの無効化
%define no_x11_askpass 0 ↓ %define no_x11_askpass 1
gnome_askpassの無効化
%define no_gnome_askpass 0 ↓ %define no_gnome_askpass 1
zlibのバージョンチェック無効化
%configure \
--sysconfdir=%{_sysconfdir}/ssh \
・・・
↓
%configure \
configure --without-zlib-version-check \ ← 追加
--sysconfdir=%{_sysconfdir}/ssh \
・・・RFC*削除
%doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* RFC* TODO WARNING* ↓ %doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* TODO WARNING* ← RFC*削除
./openssh-5.3p1/contrib/ 以下の、redhat以外のディレクトリを削除します。
# rm -Rf ./openssh-5.3p1/contrib/aix/ # rm -Rf ./openssh-5.3p1/contrib/hpux/ # rm -Rf ./openssh-5.3p1/contrib/caldera/ # rm -Rf ./openssh-5.3p1/contrib/suse/ # rm -Rf ./openssh-5.3p1/contrib/cygwin/ # rm -Rf ./openssh-5.3p1/contrib/solaris/
展開したディレクトリを再圧縮します。
# tar czvf ./openssh-5.3p1.tar.gz ./openssh-5.3p1/
RPMを作成します。
# rpmbuild -tb --clean ./openssh-5.3p1.tar.gz
※ ビルド依存性の失敗で終了する場合は、必要とされているパッケージをyum等でインストールします。
作成したopenssh、openssh-server、openssh-clientsをインストールします。
# rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-5.3p1-1.i386.rpm # rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-server-5.3p1-1.i386.rpm # rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-clients-5.3p1-1.i386.rpm
作業ファイルを削除します。
# rm -Rf ./openssh-5.3p1/ # rm -f ./openssh-5.3p1.tar.gz # rm -f /usr/src/redhat/RPMS/i386/openssh-*
SSHサーバーを起動します。
# /etc/init.d/sshd start
SSHサーバーが自動的に起動するように設定します。
# chkconfig sshd on
念のため、自動起動の確認の確認を行います。 ランレベル2~5がonになっていることを確認してください。
# chkconfig --list sshd sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Telnetサーバーは不要になったので、アンインストールします。 SSHでログインし直してから、以下の作業を行います。
# chkconfig xinetd off # /etc/init.d/xinetd restart # yum -y remove telnet-server

