OpenSSH のインストールの仕方です。
OpenSSH には zlib と OpenSSL が必要ですから、
これらもインストールします。
用意するもの
それぞれ、[2003/04/15]現在での最新バージョンは、
- zlib-1.1.4.tar.gz
- openssl-0.9.6g.tar.gz
- openssh-3.5p1.tar.gz
です。
[2003/04/01] に openssh-3.6.1 がリリースされましたが、
3.6.1 はここに書いた 3.5p1 のインストール方法とは違います。
詳しくは付属の README などを御覧ください。
ちなみに、FreeBSD 4.1.1-RELEASE の上では
openssh-3.6.1 の make に失敗しました。なぜだろう?
↑openssh のバージョンの最後に p が付くのは
OpenSSH からの移植版という意味です。
3.6.1 には p が付いてないので、たぶん移植版を使わにゃいかん、
ということでしょう。
[2005/06/30]現在の最新版である openssh-4.1p1 は
FreeBSD 4.7-RELEASE にインストールできました。
- zlib-1.2.2.tar.gz
- openssl-0.9.8-beta6.tar.gz
- openssh-4.1p1.tar.gz
インストール方法は、このページの方法と同じです。
[2006/12/07] の最新版は以下の通りです。
- zlib-1.2.3.tar.gz
- openssl-0.9.8d.tar.gz
- openssh-4.5p1.tar.gz
zlib のインストール
% tar zxvf zlib-1.1.4.tar.gz
% cd zlib-1.1.4
% ./configure
% make
% su
Password:
# make install
|
OpenSSL のインストール
% tar zxvf openssl-0.9.6g.tar.gz
% cd openssl-0.9.6g
% ./config
% make
% make test
% su
Password:
# make install
|
./config であって、./configure ではないので注意してください。
make には結構時間がかかります。
OpenSSH のインストール
% tar zxvf openssh-3.5p1.tar.gz
% cd openssh-3.5p1
% ./configure --with-tcp-wrappers
% make
% su
Password:
# make install
|
./configure をするとき --with-tcp-wrappers オプションをつけると、
Tcpwrapper と連携して /etc/hosts.allow で sshd に関する
アクセス制限をすることができます。
PAM認証を連携したい場合には --with-pam オプションを付けますが、
別に PAM 用の「何か」をインストールしてあげないと
ログインに失敗するので注意です。「何か」はよくわかっていません。
また、デフォルトでは /usr/local/bin や /usr/local/lib に
インストールされますが、この場所を変えたいときは --prefix=XXXXX
と指定します。例えば、--prefix=/usr/local/openssh とすると、
/usr/local/openssh/bin や /usr/local/openssh/lib にインストールされます。
トラブルシューティング
openssh の configure で prefix によってインストール先を
標準の場所から変えた場合、/etc/rc.conf で sshd_enable="YES"
としただけでは最新版の sshd が起ち上がらないかも知れません。
例えば、/usr/local/openssh-xxx/ 以下にインストールした場合は、
/etc/rc.conf で sshd_enable="NO" としてから、/usr/local/etc/rc.d に
#!/bin/sh
[ -x /usr/local/openssh-4.1p1/sbin/sshd ] && /usr/local/openssh-4.1p1/sbin/sshd && echo -n ' openssh'
|
という内容のスクリプト(sshd.sh とします)を作って、
実行権を出しておいて下さい。
# chmod u+x /usr/local/etc/rc.d/sshd.sh
|
トラブルシューティング
SSH2 を入れている状態で、make install すると
「sshd というユーザがいない」と言って怒られました。
では、というので無理矢理 sshd というユーザを作ると、
「ホームディレクトリの owner か mode がダメだ」
と言って怒られます。これがうまく行かないと、
sshd を起動することもできませんが、解決法はよくわからず。。。
とりあえず、うちの /etc/passwd における sshd の記述は次の通りで、
これで動いています。
sshd:*:27:27:sshd privsep:/var/empty:/sbin/nologin
|
2つある 27 という数字はユーザ ID とグループ ID なので自由に変更可です。
sshd の自動起ち上げ
起動時に SSH のデーモン sshd を自動的に起ち上げるには、
次のようにします。
/usr/local/etc/rc.d/sshd.sh
#!/bin/sh
[ -x /usr/local/sbin/sshd ] && /usr/local/sbin/sshd && echo -n ' sshd'
|
# cd /usr/local/sbin/rc.d
# chmod u+x sshd.sh
|
このあと、リブートもしくは
# /usr/local/etc/rc.d/sshd.sh
|
です。
使い方
ssh2 などでは自動的に X を転送してくれましたが、
openssh は環境変数 DISPLAY を設定しないと転送してくれません。
リモートホストに入った後、次の作業をします。
% setenv DISPLAY (ローカルホストの IP):0.0 (csh 系の場合)
|
もっと簡単なのは、ssh で入るときに -X オプションを付けておくことです。
ローカルホスト側の設定で、-X を省くこともできます。
/etc/ssh/ssh_config というファイルの中に、次の1行を入れておきます。
/etc/ssh/ssh_config
ForwardX11 yes
|
UNIX パスワードではなく、パスフレーズによる認証しか認めない場合には、
/etc/ssh/sshd_config を次のように変更します。
なお、インストール先の指定によっては設定ファイルが /etc/ssh/sshd_config
以外であることがあります。
として、-f file の行に書いてある default の設定ファイルを調べてください。
/etc/ssh/sshd_config
RSAAuthentication yes (コメントを外す)
PubkeyAuthentication yes (コメントを外す)
PasswordAuthentication no (コメントを外して yes を no に変える)
|
参考ページ
FreeBSD の部屋
Last modified: Wed Apr 20 16:08:36 JST 2011