さくらのクラウドの CentOS 7 でユーザー作成とSSHの設定をする

前回はまっさらな端末に CentOS 7 のインストールを行いました。
Webサーバとして使うことが目的のため、早速 Nginx や PHP-FPM のインストールに入りたいところですが、まだ少し設定が残っています。
この設定はなくても困ることはありませんが、設定をすることで格段に効率がアップしますので、設定しておくことをおすすめします。

SSHで接続

さくらのクラウドは仮想マシンを使用しており、コントロールパネルにはリモートコンソールも用意されていますが、さすがにこのコンソールのみでの操作は疲れてしまいます。
そこで、SSH接続の設定を行いましょう。

SSH接続は、 Mac であれば標準でついている「ターミナル.app」、 Windows なら Tera Term、あるいは、ウェブブラウザGoogleChromeの拡張機能「Secure Shell」で行うことができます。
ここでは、ローカルのマシンに Mac を使用することを想定しています。

ターミナルを起動し、SSH で root にログインします。

初めての接続では、「本当に接続しますか?」といったメッセージが表示されるので、
“yes” と入力してエンターキーを押します。
すると、root でログインすることができます。

ログインしたついでに、パッケージのアップデートが来ていないか確認(インストール)しましょう。

アップデートが完了しました。

ユーザーの作成

次に、CentOS に root 以外のユーザーを作り、パスワードを設定します。
今後 root でのログインを禁止するため、ここで設定するユーザー名とパスワードは覚えておいてください。

パスワードを入力するときは、入力パスワードの内容や桁数などは表示されません。
入力ミスに注意しましょう。

ついでに、作成したユーザーディレクトリに ssh の公開鍵をアップロードするためのディレクトリを作成します。

更にここで、 vim のインストールをしておくと便利です。
vim のインストールについては、別のエントリーで紹介します。

SSHの設定

SSHキーの作成

SSHでの不正なアクセスを防ぐなど、セキュリティを高めるために公開鍵認証でのログイン方法に切替え、パスワード認証ログインを使えないようにします。
これにより、鍵を持っている端末のみでしかログインができないようになります。

一度、現在接続中のSSHからログアウトします。

ここからはローカルでの作業になります。
既にローカルのユーザーディレクトリ直下、.ssh ディレクトリの中既に鍵がある場合は、この作業は必要ありません。
(システムファイルを表示した状態でないと表示されませんので注意)

鍵の作成に成功すると、アスキーアートのようなテキストが表示されます。
ユーザディレクトリの中の .ssh ディレクトリを見ると、 id_rsa (秘密鍵)と id_rsa.pub (公開鍵)の2つのファイルが作成されています。
このうち、 adduser で作成したユーザーで、 id_rsa.pub をアップロードします。
これが「作業用ユーザー」ということになります。

パスワードを求められたら passwd で設定したパスワードを入力します。
アップロードが完了したら、作業用ユーザー名でログインをします。

パスワードを求められるので、入力します。

公開鍵の名前を、リネームし、アクセス権も変更します。

“autohrized_keys” とは、公開鍵の保管を行う他、ユーザーがログインしたら自動実行するファイルの情報などを保管しておくための場所です。ログインユーザーと結びつけるために、1つのファイルにまとめておくんですね(たぶん)。

設定ファイルの編集

SSHの設定ファイルの編集を行い、ログインユーザーを限定していきます。

54行目、55行目のコメントアウトを外します。

書き換えて保存をしたら、sshdを再起動します。

いったんSSHをログアウトし、再度作業ユーザーでログインします。

再度ログインしたら、SSHの設定ファイルを開きます。

SSH での root でのログインを禁止します。49行目に設定項目があります。

↓rootでのログインを禁止

パスワード認証でのログインを禁止します。79行目に設定項目があります。

↓パスワード認証ログインを禁止

SSHのポート変更

※ 2016年11月22日追記
最近このブログの CentOS7 に Vim エディタをインストールや この記事へのアクセスが多くあります。何故だろう…。
そこで、特にこの記事ではひとつ書いていなかったことがあるので追記しておきます。それが、「SSHのポート変更」です。

SSHのポート変更は、セキュリティの面や、アタックされたときの負荷対策に有効なものです。
なお、この作業は SELinxu が disabledでなければ有効化できません。(もっと適切な方法があるのかもしれませんが、これが手軽な方法です)

SELinux の設定が確認できたら、まず、SSHの設定ファイルを開きます。

上記を入力して出てきた設定ファイルの中から、

という部分を探して、ポート番号を変更し、先頭の # を外します。

更に、 firewalld の設定も変更します。
firewalld の設定ファイルは

にあります。この中に

と書かれています。
この内容を変更すればよいのですが、実はこのファイルそのものを変更してはいけいないことになっています。
そこで、以下のようにします。

設定ファイルを /etc/firewalld/services/ssh.xml にコピーし、内容を書き換えます。

SSHD の再起動と、 Firewall の設定反映のコマンドを入力します。

これで SSH の設定ができました。
なお、ポート番号にはそれぞれ決まりがあります。使用できるポート番号は限られていますので、 Wikipedia 等で調べてみてください。

参考サイト

お名前VPSにCentOS 7をインストールしてWebサイトを作ってみた – Qiita
authorized_keys ファイルについて調べてみたら楽しかった. – それマグで!
今まで知らずに損してたauthorized_keysの書き方 – Qiita
CentOS7のfirewalldでsshのポート番号を変更する方法 – Qiita
SSH待ち受けポート変更 | server-memo.net

Share on Facebook13Share on Google+0Tweet about this on TwitterShare on LinkedIn0

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です