この記事では、CentOS 6(ここでは6.9)にSSHを初期設定する方法を解説します。
VPSや自前サーバーを構築したらまずやっておくべき設定です。ここではパスワード認証を無効にして鍵認証を導入します。
目次
設定手順
設定ファイルを開きます。
$ sudo vi /etc/ssh/sshd_config
以下の通りに設定を書き換えます。
PermitRootLogin no #ルートログインを禁止する(44行目付近)
PasswordAuthentication no #パスワード認証を無効にする(66行目付近)
PermitEmptyPasswords no #パスワードなしでのログインを禁止(67行目付近)
必須ではないですが、デフォルトのポート22は攻撃の対象になりやすいのでポートも変更しておきます。(任意)
#Port 22 #コメントアウト(13行目付近)
Port 20022
設定ファイルを保存して終了後、ユーザーのホームディレクトリに公開鍵を設置するディレクトリを作成します。[user]のところは自身のユーザー名に置き換えてください。
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ chown user:user ~/.ssh
公開鍵ファイルを作成し、PuTTYなどで作成した公開鍵をコピー&ペーストする。
$ vi ~/.ssh/authorized_keys
公開鍵ファイルのパーミッションを変更します。
$ chmod 600 ~/.ssh/authorized_keys
$ chown user:user ~/.ssh/authorized_keys
ポートを変更した場合、iptablesコマンドやsystem-config-firewallなどの設定ツールでポートを開放します。ポートを変更しなかった場合は標準の22番を開放します。
$ sudo iptables -A INPUT -p tcp --dport 20022 -j ACCEPT
サービスを再起動します。
$ sudo service sshd restart
システム起動時に自動で起動させます。
$ sudo chkconfig sshd on
これで作業は完了です。念のため現在接続しているセッションをそのままにして、新規でターミナル接続可能かどうかを確認してみましょう。もしログイン出来ない場合、パーミッションや鍵ファイルに誤りがある可能性があります。以下の場所に認証ログが残りますので、確認して原因を探ってみてください。
$ sudo view /var/log/secure