OpenSSHを最新版へ |
[root src]# ftp ftp.openbsd.org ftp> cd /pub/OpenBSD/OpenSSH/portable ftp> get openssh-3.7.1p2.tar.gz ftp> quit ダウンロードしたファイルを展開します。 [root src]# tar zxvf openssh-3.7.1p2.tar.gz [root src]# cd openssh-3.7.1p2 |
[root openssh-3.7.1p2]# mkdir /var/empty [root openssh-3.7.1p2]# chown root:sys /var/empty [root openssh-3.7.1p2]# chmod 755 /var/empty [root openssh-3.7.1p2]# groupadd sshd [root openssh-3.7.1p2]# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd |
[root openssh-3.7.1p2]# ./configure --with-pam --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl
--prefix=/usr/local/openssh3.7.1p2 <-- prefixは通常指定しなくてよいです。 [root openssh-3.7.1p2]# make [root openssh-3.7.1p2]# make install ↓これ以下prefixを指定した人だけ。 [root openssh-3.7.1p2]# cd /usr/local [root local]# ln -s openssh3.7.1p2 openssh <-- インストールディレクトリに対し、シンボリックリンクを張ります。 次にパスの通っていない場所にインストール下のでパスを通します。編集するファイルは/etc/bashrcです。 [root local]# vi /etc/bashrc <--ファイルの最後の行に以下の2行を加えてください。 export PATH=$PATH:/usr/local/openssh/bin <--追加 export MANPATH=$MANPATH:/usr/local/openssh/man <--追加 |
「Privilege separation」が有効な場合に(デフォルト有効)、ユーザーを作成していないと以下のエラーになります。 /usr/local/openssh/sbin/sshd -t -f /etc/ssh/sshd_config Privilege separation user sshd does not exist make: [check-config] Error 255 (ignored) |
このファイルを参照するとほぼすべての項目がコメントになっているはずです。コメントの場合はデフォルト値が使われます。 以下の項目のみコメント(#)をはずし、値を設定してください。 PermitRootLogin no <--値をyesからnoに変更します。 PasswordAuthentication no <--値をyesからnoに変更します。 |
[root openssh-3.7.1p2]# cp -p ./contrib/sshd.pam.generic /etc/pam.d/sshd |
Jul 16 00:51:51 ryouto sshd[29765]: PAM rejected by account configuration[13]:
User account has expired Jul 16 00:51:51 ryouto sshd[29765]: fatal: monitor_read: unsupported request: 24 |
[hoge hoge]$ ssh-keygen -t rsa1 <--rsa1の鍵を作成します。 Generating public/private rsa1 key pair. Enter file in which to save the key (/home/hoge/.ssh/identity):このままでよいので未入力でEnter Created directory '/home/hoge/.ssh'. Enter passphrase (empty for no passphrase):適当なパスフレーズを入力します。ログインで使用します。 Enter same passphrase again: Your identification has been saved in /home/hoge/.ssh/identity. <-- 秘密鍵です。 Your public key has been saved in /home/hoge/.ssh/identity.pub. The key fingerprint is: ae:b3:87:ef:e3:38:86:83:9c:38:c5:bc:14:0d:08:14 hoge@ryouto.jp [hoge hoge]$ cd .ssh [hoge .ssh]$ cp -p identity.pub authorized_keys |
#!/bin/bash # Init file for OpenSSH server daemon # # chkconfig: 2345 55 25 # description: OpenSSH server daemon # # processname: sshd # config: /etc/ssh/ssh_host_key # config: /etc/ssh/ssh_host_key.pub # config: /etc/ssh/ssh_random_seed # config: /etc/ssh/sshd_config # pidfile: /var/run/sshd.pid # securlevel: 100 # source function library . /etc/rc.d/init.d/functions [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd RETVAL=0 # Some functions to make the below more readable KEYGEN=/usr/local/openssh/bin/ssh-keygen RSA1_KEY=/etc/ssh/ssh_host_key RSA_KEY=/etc/ssh/ssh_host_rsa_key DSA_KEY=/etc/ssh/ssh_host_dsa_key PID_FILE=/var/run/sshd.pid my_success() { local msg if [ $# -gt 1 ]; then msg="$2" else msg="done" fi case "`type -type success`" in function) success "$1" ;; *) echo -n "${msg}" ;; esac } my_failure() { local msg if [ $# -gt 1 ]; then msg="$2" else msg="FAILED" fi case "`type -type failure`" in function) failure "$1" ;; *) echo -n "${msg}" ;; esac } do_rsa1_keygen() { if ! test -f $RSA1_KEY ; then echo -n "Generating SSH1 RSA host key: " if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then my_success "RSA1 key generation" echo else my_failure "RSA1 key generation" echo exit 1 fi fi } do_rsa_keygen() { if ! test -f $RSA_KEY ; then echo -n "Generating SSH2 RSA host key: " if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then my_success "RSA key generation" echo else my_failure "RSA key generation" echo exit 1 fi fi } do_dsa_keygen() { if ! test -f $DSA_KEY ; then echo -n "Generating SSH2 DSA host key: " if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then my_success "DSA key generation" echo else my_failure "DSA key generation" echo exit 1 fi fi } case "$1" in start) # Create keys if necessary do_rsa1_keygen; do_rsa_keygen; do_dsa_keygen; echo -n "Starting sshd: " if [ ! -f $PID_FILE ] ; then /usr/local/openssh/sbin/sshd $OPTIONS RETVAL=$? if [ "$RETVAL" = "0" ] ; then my_success "sshd startup" "sshd" touch /var/lock/subsys/sshd else my_failure "sshd startup" "" fi fi echo ;; stop) echo -n "Shutting down sshd: " if [ -f $PID_FILE ] ; then killproc sshd RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd fi echo ;; restart) $0 stop $0 start RETVAL=$? ;; condrestart) if [ -f /var/lock/subsys/sshd ] ; then $0 stop $0 start RETVAL=$? fi ;; status) status sshd RETVAL=$? ;; *) echo "Usage: sshd {start|stop|restart|status|condrestart}" exit 1 ;; esac exit $RETVAL |
[root rc3.d]# ln -s ../init.d/sshd S83sshd [root rc3.d]# cd ../rc5.d [root rc5.d]# ln -s ../init.d/sshd S83sshd [root rc5.d]# cd ../rc0.d [root rc0.d]# ln -s ../init.d/sshd K03sshd [root rc0.d]# cd ../rc6.d [root rc6.d]# ln -s ../init.d/sshd K03sshd |
お問い合わせはwebmaster@ryouto.jpまで。
Copyright (C)2003 ryouto.jp. All Rights Reserved.