OpenSSH 導入(FedoraCore

パッケージのダウンロード

http://www.openssh.com からopenssh-3.9p1.tar.gzをダウンロードする。

ファイルの解凍

ダウンロードしたファイルを解凍する。

# tar -zxvf openssh-3.9p1.tar.gz

コンパイル&インストール

# cd openssh-3.9p1.tar.gz
# ./configure
# make
# make install

設定ファイルの修正

/usr/local/etc/sshd_config をエディタで修正する。 必要な行のコメントを外す。

	
#    $OpenBSD: sshd_config,v 1.69 2004/05/23 23:59:53 dtucker Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

Port 22
Protocol 2,1
ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1
HostKey /usr/local/etc/ssh_host_key
# HostKeys for protocol version 2
HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /usr/local/etc/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 1h
ServerKeyBits 768

# Logging
#obsoletes QuietMode and FascistLogging
SyslogFacility AUTH
LogLevel INFO

# Authentication:

LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
MaxAuthTries 6

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile    .ssh/authorized_keys

# For this to work you will also need host keys in /usr/local/etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication mechanism.
# Depending on your PAM configuration, this may bypass the setting of
# PasswordAuthentication, PermitEmptyPasswords, and
# "PermitRootLogin without-password". If you just want the PAM account and
# session checks to run without PAM authentication, then enable this but set
# ChallengeResponseAuthentication=no
#UsePAM no

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression yes
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10

# no default banner path
#Banner /some/path

# override default of no subsystems
Subsystem    sftp    /usr/local/libexec/sftp-server

設定確認

# /usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config

ここでもしエラーが出た場合は、sshd_configを再度修正する。

SSHDの起動

# /usr/local/sbin/sshd -f /usr/local/etc/sshd_config

SSHDをサービスに登録する方法

1.古いrpmパッケージの削除

 古いrpmパッケージが入っている場合は、それを削除する。
 rpmコマンドでパッケージの存在を確認する。

# rpm -qa | grep openssh

 パッケージが残っている場合は、それらを削除する。

# rpm -e openssh openssh-server openssh-clients openssh-askpass openssh-askpass-gnome

2.起動スクリプトの作成

[/etc/rc.d/init.d/sshd]

	
#!/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/bin/ssh-keygen
RSA1_KEY=/usr/local/etc/ssh_host_key
RSA_KEY=/usr/local/etc/ssh_host_rsa_key
DSA_KEY=/usr/local/etc/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/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


 3.サービスの登録

# /sbin/chkconfig sshd on

 とすると、2で作成したsshdがサービスとして登録される。
 サービスから削除する場合は、以下のようにする。

# /sbin/chkconfig sshd off

 4.サービスの起動と停止

 sshdの起動

# /sbin/service sshd start

 sshdの停止

# /sbin/service sshd stop

 5.RunLevel?の設定
 /etc/rc.d/init.d/sshdにシンボリックリンクを貼る。
 例えば以下のように設定する。

 ・ランレベル3でsshdを起動する

# cd /etc/rc.d/rc3.d
# ln -s ../init.d/sshd S83sshd

 ・ランレベル5でsshdを起動する

# cd /etc/rc.d/rc5.d
# ln -s ../init.d/sshd S83sshd

 ・ランレベル0でsshdを停止する

# cd /etc/rc.d/rc0.d
# ln -s ../init.d/sshd K03sshd

 ・ランレベル6でsshdを停止する

# cd /etc/rc.d/rc6.d
# ln -s ../init.d/sshd K03sshd

 6.動作確認

  再起動して、自動起動を確認する。

その他

・特定のユーザのみログインを許可するには
 sshd_configに以下1行を追加する(user1,user2のみログインを許可する場合)

AllowUsers user1 user2

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-14 (金) 00:00:00 (3442d)