Top > Linux > sshd


SSHとは?

ネットワークを介してコンピュータにログインするプログラムをSSH(Secure Shell)と呼ぶ。 SSHでは、通信データを暗号化することで、安全に通信することができる。 またSSHを利用することで、自分が操作するコンピュータ上にTELNETと同様のLinux仮想端末を作ることができる。

SSHサーバの設定

/etc/ssh/sshd_config の設定
PermitRootLogin no          (root でのログインを禁止)
PasswordAuthentication yes  (パスワードでのログインを許可)
PermitEmptyPasswords no     (パスワードなしでのログインを禁止)
SSHサーバの再起動
# /etc/rc.d/init.d/sshd restart
sshdを停止中:                 [  OK  ]
sshdを起動中:                 [  OK  ]
自動起動設定
# chkconfig sshd on
ポートの解放
Linux側 : ファイアウォールで 22 番のポートを開放する。
ルータ側: 同じく 22 番のポートを開放する (外部からのログインを許可する場合)

セキュリティーを高める

ログインを許可するユーザの設定

/etc/ssh/sshd_config 追記
AllowGroups xxxxxx    (SSH接続できるグループを限定)
AllowUsers  xxxxx     (SSH接続できるユーザを限定する)
.....
AllowGroups sshuser
AllowUsers foo hoge
.....

TCP Wrapper の設定

アクセス制限の流れ
TCP Wrapper の設定ファイルは、/etc/hosts.allow と /etc/hosts.denyの2つである。 前者がアクセスを許可するために、後者がアクセスを拒否するために使用される。
① /etc/hosts.allow ファイルを参照し、もしマッチすれば接続を許可する
② /etc/hosts.allow ファイルに設定されていない通信の場合は、
   /etc/hosts.deny ファイルを参照する。もしマッチすれば、接続を拒否する。
③ どちらのファイルにも記述が無い場合、接続を許可する
/etc/hosts.allow (例)
sshd : 192.168.0.     # 接続を許可する IP アドレスを指定
sshd : .yahoo.co.jp   # 接続を許可するドメインを指定
/etc/hosts.deny (例)
ALL : ALL

使用するポート、プロトコルを変更する

/etc/ssh/sshd_config の設定
#Port 22     # コメントアウトする
Port 2222    # 使用したいポートを指定する
.....
Protocol 2   # SSH2 のプロトコルを使用する
指定したポートの解放
Linux側 : ファイアウォールで指定したポートを開放する。
ルータ側: 同じく指定したポートを開放する (外部からのログインを許可する場合)

鍵認証でログインする

/etc/ssh/sshd_config の設定
.....
PasswordAuthentication no   # パスワードでのログインを禁止
RhostsRSAAuthentication no  # .rhosts 等を信用しない
.....
SSHサーバの再起動
# /etc/rc.d/init.d/sshd restart
sshdを停止中:                 [  OK  ]
sshdを起動中:                 [  OK  ]
鍵の作成
$ su foo                (鍵を作成したいユーザになる)
$ ssh-keygen -t rsa     (ペアの鍵を作成)
....
Enter passphrase (empty for no passphrase): [パスワード入力]
Enter same passphrase again: [パスワードを再入力]

$ chmod -R 600 /home/foo/.ssh/    (パーミッション変更)
$ cd /home/foo/.ssh/
$ cp id_rsa.pub authorized_keys   (SSHに食わせるファイルへコピー)

/home/foo/.ssh/id_rsa というファイルが秘密鍵になります。

他人に知られないよう、注意が必要です

Windows からのログインは、UTF-8 Tera Term Pro with TTSSH2などを使用すると便利です。

/etc/ssh/sshd_config 設定例

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.
 
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/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 xxxxx
 
# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2
 
# Logging
SyslogFacility AUTHPRIV
 
# Authentication:
PermitRootLogin no
RhostsRSAAuthentication no
PermitEmptyPasswords no
PasswordAuthentication no
 
.....
 
# Example of overriding settings on a per-user basis
AllowUsers foo hoge

リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 13 May 2011 00:17:10 JST (2626d)