CentOS7:SSH公開鍵認証設定のやり方

CentOS7でSSH公開鍵認証を設定し、より安全に通信を行う方法をまとめています。

SSH公開鍵認証を設定するだけでセキュリティが大きく向上すると思いますね(・ω・)ノ

サーバー構築後、必ず行いたい設定の一つです。

CentOS7でSSH 公開鍵認証接続の設定を行う

tera termで鍵のペアを作成

windows環境のため、tera termを利用して鍵認証のペアを作成

「設定(S)」メニューより「SSH鍵生成(N)」を選択し、鍵生成画面を表示

epNote

鍵の種類「RSA」にチェックし、「生成」を選択

epNote

「公開鍵の保存」と「秘密鍵の保存」を行う
      今回は、テスト環境作成のため、秘密鍵を「空のパスフレーズ」のまま作成
      実際の運用の際は、セキュリティ上設定を行う必要がある

epNote

公開鍵の設定

サーバーに公開鍵を設置

公開鍵保管場所を作成

    mkdir /home/user/.ssh
    chmod 700 /home/user/.ssh
    chown -R user:user /home/user/.ssh

作成した「id_rsa.pub」をtera term上にドラッグ&ドロップし、SCPで公開鍵の設置
      SCP「∼⁄」と入力して「SCP」を選択

epNote

転送した「id_rsa.pub」をリネームして移動

    mv ~/id_rsa.pub /home/user/.ssh/authorized_keys
    chmod 600 /home/user/.ssh/authorized_keys
    chown -R user:user /home/user/.ssh/authorized_keys

目次へ

SSHの設定

SSHに関する接続の設定を変更する

configファイルのバックアップ

    cp -pi /etc/ssh/sshd_config{,.`date "+%Y%m%d_%H%M%S"`}

configファイルの変更

    vi /etc/ssh/sshd_config
       #Port 22
      >> Port 2202             # portを変更したい場合のみ(ここでは2202を設定した)
      #PermitRootLogin yes
      >> PermitRootLogin no    # rootのSSHアクセス不可
      #以下、末尾に追記
      >> Protocol 2            # SSHのプロトコルをSSH2のみ対応とする

目次へ

firewallの設定

SSHの接続portを変更した場合、firewallの設定を変更する

configファイルのバックアップ

    cp /usr/lib/firewalld/services/ssh.xml{,.`date "+%Y%m%d_%H%M%S"`}

configファイルの変更

    vi /usr/lib/firewalld/services/ssh.xml
      <port protcol="tcp" port="22" />
      >> <port protcol="tcp" port="2202" />    # 変更したport
    firewall-cmd --reload

目次へ

SELinuxの設定

SSHの接続portを変更した場合、SELinuxの設定を変更する

設定変更

    yum -y install policycoreutils-python
    semanage port -a -t ssh_port_t -p tcp 2202    # 変更したport
    semanage port -l | grep ssh                   # 変更したport

sshサービスの再起動

    systemctl restart sshd

目次へ

別ターミナルより公開鍵を利用して SSH 接続確認

設定が完了したら、tera termにて公開鍵認証での接続を確認する

tera termを起動し、「ホスト」、「TCPポート」を入力し、「OK」を選択
      セキュリティ警告画面が出たら、「続行」を選択

epNote

「ユーザー」を入力し、「秘密鍵」に作成した「id_rsa」を選択後、「OK」を選択
      接続が成功すれば完了

epNote

目次へ

SSH パスワード接続を無効化

公開鍵認証にしたため、パスワードでの接続を無効化する
  設定を間違えた場合を考慮して最後にこの設定を記載しているが、
  sshd_configの変更の際に設定しても問題ない

configファイルの変更

    vi /etc/ssh/sshd_config
      PasswordAuthentication yes
      >> PasswordAuthentication no    # パスワード接続無効

sshサービスの再起動

    systemctl restart sshd

目次へ

作成日:2017/06/25
更新日:2018/08/16