はちゅにっき

こっちのブログはまったり更新

公開鍵認証方式を利用することに

あまりにもどこかの国からのアタックが酷いので
パスワード認証をやめて、公開鍵認証方式を利用することに。

設定の変更

/etc/ssh/sshd_config を変更し、パスワード認証を拒否し
公開鍵認証方式のみを利用ように。
ついでに、特定のユーザ(今回は hogehoge )のみが
ログイン可能となるよう設定しました。
変更後の sshd_config は以下のように

Port 22    # ポート番号
Protocol 2 # 受け付けるプロトコルバージョン

# key のありか
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key

# 子プロセスを root 権限で実行しない
UsePrivilegeSeparation yes

# ログイン許可
AllowUsers hogehoge # ←ここ書いた

# ログ設定
SyslogFacility AUTH # syslog に記録する際の分類
LogLevel ERROR      # ログのレベル QUIET, FATAL, ERROR, INFO, VERBOSE

# 認証関連
LoginGraceTime 30         # この時間以内に認証させなければならない
PermitRootLogin no        # root のログイン拒否
StrictModes yes           # home directory のパーミッションをチェック
PubkeyAuthentication yes  # 公開鍵認証方式
PasswordAuthentication no # パスワード認証を拒否 ←ここ書いた

IgnoreRhosts yes           # ?
HostbasedAuthentication no # ?

PermitEmptyPasswords no            # パスワードが空なユーザは拒否
ChallengeResponseAuthentication no # チャレンジログイン拒否

X11Forwarding no # X11 ポートフォワード禁止

PrintMotd no     # /etc/motd の内容をログイン時に表示しない
PrintLastLog yes # 最後のログインがいつか表示
TCPKeepAlive yes # keepalive する
UseLogin no      # login コマンド禁止

MaxStartups 5:50:10 # 接続受付数 5 以降は 50% の確立で拒否 最大で10 まで

AcceptEnv LANG LC_* # 受け付ける環境変数 (?

UsePAM no # PAM インタフェースによる認証を許可しない (?

# 外部サブシステムの記述
Subsystem sftp /usr/lib/openssh/sftp-server

key の生成

ログインしたい一般ユーザ(今回は hogehoge )で以下のコマンドを実行

$ ssh-keygen -t rsa -b 1024
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hogehoge/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 鍵のパスワードいれる
Enter same passphrase again: 鍵のパスワードを再入力

すると、~/.ssh

ファイル名 役割
id_rsa 秘密鍵
id_rsa.pub 公開鍵

が生成されました。

公開鍵の配置などなど

公開鍵である id_rsa.pub は名前を authorized_keys に変更し
本人以外読み取れないように、パーミッションを変更

$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys

これでサーバ側の設定は終了。

秘密鍵のお持ち帰り

秘密鍵の id_rsa はクライアントで使うので
scp などで、たぶんきっと安全に持ち帰り。
クライアントは putty を利用しているので puttygen.exe
で鍵が putty で利用できる形にコンバートしました。
コンバート方法は・・・

  1. puttygen.exe を起動
  2. ファイル(F) → 秘密鍵の読込(F)
  3. 持ち帰った鍵を選択する
  4. パスワードを入力する
  5. 秘密鍵の保存(S) で保存する
  6. putty.exe を起動する
  7. 接続 → SSH → 認証
  8. 「認証のためのプライベートキーファイル(K)」で先ほどのキーを選択する


さてさて、効果のホドは?
って、アタックを減らすには効果ないので、効果は
「より侵入されるリスクを低減した」
というだけですね。