玄箱で OpenSSH のアップグレード [Linux]
職場のマシン(RedHat 9)で OpenSSH のアップグレードが必要となり、練習がてら(笑)自宅サーバーの玄箱 Vine 2.6 で試してみた。共に既にサポートが終了しているディストリビューションなので、rpm で手軽にアップグレードという訳には行かず、ソースからビルドすることに。今回は /etc/ssh 以下にある現在の設定ファイルを残し再利用する形で /usr/local にインストールする点がポイント。
1) ダウンロード&コンパイル
# curl -OR http://ftp.kddilabs.jp/OpenBSD/OpenSSH/portable/openssh-4.6p1.tar.gz # tar zxf openssh-4.6p1.tar.gz # cd openssh-4.6p1 # ./configure --sysconfdir=/etc/ssh # make コンパイル時間は約8分と長い。そろそろ玄箱HGにでもしたいところ..。
2) インストール & 設定確認
# make install-nosysconf (ここで install-nosysconf することで設定ファイルのコピーやキーの生成が省略される) # /usr/local/sbin/sshd -t (何も表示されなければOK)
3) telnet を有効化
# vi /etc/inetd.conf telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd (↑この行のコメントアウトを解除) # service restart inet (xinetd の場合は /etc/xinetd.d/telnetを編集して service xinetd restart)
4) telnet 接続用にパスワードを一時的に変更
# passwd New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully
5) ssh 接続を全て切断し、telnet でログイン
6) インストール済み ssh の停止・削除
# service sshd stop
# cp -a /etc/ssh /etc/ssh.bak (念のため)
# rpm -e openssh-clients
# rpm -e openssh-server
# rpm -e openssh
7) 起動スクリプトのインストールと編集、登録
# cp openssh-4.6p1/contrib/redhat/sshd.init /etc/rc.d/init.d/sshd # vi /etc/rc.d/init.d/sshd KEYGEN=/usr/local/bin/ssh-keygen (パスを /usr/bin から /usr/local/bin に変更) SSHD=/usr/local/sbin/sshd (同上) # chkconfig --add sshd
8) 設定ファイルの復旧と編集
# mv /etc/ssh.bak /etc/ssh # vi /etc/ssh/sshd_config Subsystem sftp /usr/local/libexec/sftp-server (パスを変更) # vi /etc/man.config MANPATH /usr/local/share/man (この行を追加) OpenSSH は何故かここを使う。 インストール前にMakefileのdatarootdirを変更しておけばこの処理は不要
9) サービスの起動
# service sshd start
10) telnet 接続を切断し、ssh で接続し直す
11) telnet の無効化、パスワードの復旧
# vi /etc/inetd.conf #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd (↑この行をコメントアウト) # service inet restart (xinetd の場合は /etc/xinetd.d/telnetを編集して service xinetd restart) # passwd New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully
コメント 0