rgb-green.net

SSHサーバの構築

mainServerのサーバ構築

SSHサーバの構築

外部公開のため、パスワードによる認証でなく、公開鍵と秘密鍵、及びパスフレーズによる認証でSSHの構築をします。

(1) インストール
# rpm -qa | grep ssh
openssh-4.3p2-10
openssh-askpass-4.3p2-10
openssh-clients-4.3p2-10
openssh-server-4.3p2-10
(2) RSA公開鍵と秘密鍵の作成
作成方法については、Gentoo Linuxで自宅サーバを参考にしてください。
(3) 設定

# vi /etc/ssh/sshd_config

  • (ⅰ)RSA公開鍵認証の有効化
  •  以下により、公開鍵と秘密鍵、及びパスフレーズによる認証が可能になります。
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

  • (ⅱ)rootで直接ログインできないようにする。
  • これにより、ssh接続でroot権限を得るには認証を2回パスしなければならなくなります。
    PermitRootLogin no

  • (ⅲ)rhostでの接続とパスワード認証の無効化
  • RhostsRSAAuthentication no
    PasswordAuthentication no
    PermitEmptyPasswords no

  • (ⅳ)チャレンジレスポンス認証を明示的に無効化
  • これをしておかないとPAM認証(実質的にはパスワード認証)を行ってしまうので、公開鍵認証に限定するためにチャレンジレスポンス認証を明示的に無効化します。
    ChallengeResponseAuthentication no

  • (ⅴ)ログレベルを指定しておく。
  • SyslogFacility AUTH
    LogLevel INFO

    以上で、
     ・サーバ上の公開鍵とペアになっている秘密鍵を持っていること
     ・鍵ペア作成時に設定したパスフレーズを知っていること
     ・ssh2で接続すること
    を満たさなければssh接続ができなくなります。

(4) SSH公開鍵認証の設定
  • (ⅰ)サーバ側でやること
  • ■公開鍵ファイルをOpenSSH互換の鍵に変換
      PuTTYgenで生成した鍵はOpenSSHでは使用できません。
    $ ssh-keygen -i -f ~/id_rsa.pub > ~/authorized_key_for_admin
    $ mv authorized_key_for_admin .ssh/authorized_keys
    $ sudo chown admin .ssh/authorized_keys
    $ sudo chown togino .ssh/authorized_keys
    $ chown togino .ssh/authorized_keys
    $ chmod 600 .ssh/authorized_keys
    $ chmod 700 .ssh

  • (ⅱ)クライアント側でやること
  • ■Windows対応の公開鍵、秘密鍵のペアの作成
    ■WinSCP付属のPuTTYgenでWindows系の鍵を生成
    ■鍵を生成すると、公開鍵を「id_rsa.pub」,秘密鍵を「id_rsa_com.ppk 」として保存。
    保存先は、「c:\Documents and Setting\ユーザ\Application Data\rsa」(XP)
    C:\Users\ユーザ\AppData\Local\rsa\id_rsa_com.ppk(Vista)

    *アクセスできるか確認
    WindowsでPoderosaを使ってログインする場合は、秘密鍵の変換が必要。特に、「Wrong Key Format」とでれば、秘密鍵の形式を「ssh.com.key」にしていないことが原因。詳細は、SSH公開認証の設定を参考にしてください。

(5) xineted経由で起動させる

# service sshd stop
# chkconfig sshd off

# vi /etc/xinetd.d/ssh

service ssh
{
  flags           = REUSE
  socket_type     = stream
  wait            = no
  user            = root
  server          = /usr/sbin/sshd
  server_args     = -i
  log_on_success  += DURATION USERID
  log_on_failure  += USERID
  disable         = no
  only_from     = 192.168.○.○ 192.168.○.○ .○.○.jp
}

# service xinetd restart

SubmainServerのサーバ構築

SSHサーバの構築

外部公開のため、パスワードによる認証でなく、公開鍵と秘密鍵、及びパスフレーズによる認証でSSHの構築をします。

(1) インストール
# rpm -qa | grep ssh
openssh-4.3p2-10
openssh-askpass-4.3p2-10
openssh-clients-4.3p2-10
openssh-server-4.3p2-10
(2) RSA公開鍵と秘密鍵の作成
作成方法については、Gentoo Linuxで自宅サーバを参考にしてください。
(3) 設定

# vi /etc/ssh/sshd_config

  • (ⅰ)RSA公開鍵認証の有効化
  •  以下により、公開鍵と秘密鍵、及びパスフレーズによる認証が可能になります。
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

  • (ⅱ)rootで直接ログインできないようにする。
  • これにより、ssh接続でroot権限を得るには認証を2回パスしなければならなくなります。
    PermitRootLogin no

  • (ⅲ)rhostでの接続とパスワード認証の無効化
  • RhostsRSAAuthentication no
    PasswordAuthentication no
    PermitEmptyPasswords no

  • (ⅳ)チャレンジレスポンス認証を明示的に無効化
  • これをしておかないとPAM認証(実質的にはパスワード認証)を行ってしまうので、公開鍵認証に限定するためにチャレンジレスポンス認証を明示的に無効化します。
    ChallengeResponseAuthentication no

  • (ⅴ)ログレベルを指定しておく。
  • SyslogFacility AUTH
    LogLevel INFO

    以上で、
     ・サーバ上の公開鍵とペアになっている秘密鍵を持っていること
     ・鍵ペア作成時に設定したパスフレーズを知っていること
     ・ssh2で接続すること
    を満たさなければssh接続ができなくなります。

(4) SSH公開鍵認証の設定
  • (ⅰ)サーバ側でやること
  • ■公開鍵ファイルをOpenSSH互換の鍵に変換
      PuTTYgenで生成した鍵はOpenSSHでは使用できません。
    $ ssh-keygen -i -f ~/id_rsa.pub > ~/authorized_key_for_admin
    $ mv authorized_key_for_admin .ssh/authorized_keys
    $ sudo chown admin .ssh/authorized_keys
    $ sudo chown togino .ssh/authorized_keys
    $ chown togino .ssh/authorized_keys
    $ chmod 600 .ssh/authorized_keys
    $ chmod 700 .ssh

  • (ⅱ)クライアント側でやること
  • ■Windows対応の公開鍵、秘密鍵のペアの作成
    ■WinSCP付属のPuTTYgenでWindows系の鍵を生成
    ■鍵を生成すると、公開鍵を「id_rsa.pub」,秘密鍵を「id_rsa_com.ppk 」として保存。
    保存先は、「c:\Documents and Setting\ユーザ\Application Data\rsa」(XP)
    C:\Users\ユーザ\AppData\Local\rsa\id_rsa_com.ppk(Vista)

    *アクセスできるか確認
    WindowsでPoderosaを使ってログインする場合は、秘密鍵の変換が必要。特に、「Wrong Key Format」とでれば、秘密鍵の形式を「ssh.com.key」にしていないことが原因。詳細は、SSH公開認証の設定を参考にしてください。

(5) xineted経由で起動させる

# service sshd stop
# chkconfig sshd off

# vi /etc/xinetd.d/ssh

service ssh
{
  flags           = REUSE
  socket_type     = stream
  wait            = no
  user            = root
  server          = /usr/sbin/sshd
  server_args     = -i
  log_on_success  += DURATION USERID
  log_on_failure  += USERID
  disable         = no
  only_from     = 192.168.○.○ 192.168.○.○ .○.○.jp
}

# service xinetd restart


© 2023

© 2023 Study of Reason, Inc. All rights reserved.