さくらのクラウドでSSH周りの設定を行う

さくらのクラウドにサーバーを追加する」で作成したサーバーにSSHの設定をしていきます。

設定内容は
・指定されたユーザーのみrootに昇格できる
・rootで直接ログインは不可
・ログインには公開鍵認証が必要
です。

それぞれ設定していきましょう。

さくらのクラウドなら手順を間違えたり、途中でコンソールを落としても大丈夫ですが、他クラウドや物理サーバーで手順を間違えると、二度とそのサーバーにログインできなくなる可能性があります。
さくらのクラウド以外の方はご注意ください。

指定されたユーザーのみrootに昇格できる

まず「指定されたユーザー」を追加しなくてはなりません。
今回は「sato」というユーザーを追加し、rootに昇格できるようにしてみます。

satoを追加
$ useradd sato

satoのパスワードを設定、入力したパスワードは表示されませんが、同じものを二度打って下さい
$ passwd sato

New password:
Retype new password:
passwd: all authentication tokens updated successfully.

satoを管理者グループに設定
$ usermod -G wheel sato

rootに昇格できるのは管理者グループのみとする
$ vi /etc/pam.d/su
コメントアウトを外す
#auth    required    pam_wheel.so use_uid
↓
auth     required    pam_wheel.so use_uid

これで、管理者グループに所属しているユーザーのみ、rootに昇格できるようになりました。
ターミナルをもう1つ開いて、satoでログインしrootに昇格できるか試してみましょう。

rootで直接ログインは不可

$ vi /etc/ssh/sshd_config

コメントアウトを外し、内容を変更します。
#PermitRootLogin yes
↓
PermitRootLogin no

保存したらsshdの再起動
systemctl restart sshd.service

これでrootで直接ログインできなくなりました。
ターミナルをもう1つ開いて、rootでログインを試してみましょう。

ログインには公開鍵認証が必要

ユーザー名とパスワードだけだと、総当りで突破されてしまう可能性があります。
セキュリティレベルを上げるために、特定の文字がかかれた「鍵」というファイルを持っているユーザーのみログインできるように設定しましょう。

公開鍵、秘密鍵を作成する
satoユーザーで作業します。
$ cd
$ ssh-keygen -t rsa
パスワード等入力求められるので、手順に従って作業していきましょう。

ここに鍵のペアが出来ます。
公開鍵:/home/sato/.ssh/id_rsa.pub
秘密鍵:/home/sato/.ssh/id_rsa
秘密鍵は今後自分のパソコンで使いますので、手元に転送しておきましょう。

公開鍵を作成しただけじゃ使えませんので、もう少し設定を入れていきます。

authorized_keysへ追加
cat /home/sato/.ssh/id_rsa.pub >> /home/sato/.ssh/authorized_keys

パーミッションを0600に変更
chmod 0600 /home/sato/.ssh/authorized_keys

ここまで設定できれば、公開鍵を使ったログインができるようになっています。
先程入力したパスフレーズと鍵を使って、ログインしてみましょう。

次に通常のパスワード認証でログインできないようにします。

$ vi /etc/ssh/sshd_config

PasswordAuthentication yes
↓
PasswordAuthentication no

保存したらsshdの再起動
systemctl restart sshd.service

通常のパスワード認証でログインを試してみましょう。
ログインできなくなっていれば成功です!

CentOS7にrubyをインストールする

Chefを利用するために、CentOS7にRubyをインストールしたいけど、標準リポジトリではインストールされるバージョンが古く(バージョン2.0.0)、新しいバージョンをインストールしたい要件がありました。

標準リポジトリを使用せず、自由にバージョンを選んでRubyをインストールする方法を記載します。(ソースコードからコンパイルはしない)

関連パッケージ

  • rbenv
  • ruby-build

依存パッケージインストール

rbenv、ruby-buildをインストールするために必要なパッケージをyumコマンドでインストールします。

$ yum -y install git openssl-devel readline-devel zlib-devel

rbenv、ruby-buildをインストール

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ cd ~/.rbenv/plugins/ruby-build
./install.sh

rbenvがインストールされたか確認

$ rbenv -v
rbenv 1.1.0-2-g4f8925a

2.x.x系でインストール可能なRubyを一覧表示

バージョンの後ろにdev、preview、rcがついていないのが安定版です。
今回だと最新安定版は「2.4.0」です。

$ rbenv install -l | grep ' 2.'
.
.
.
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
2.4.0-preview3
2.4.0-rc1
2.4.0
2.5.0-dev

最新安定版のRuby-2.4.0をインストール

インストールしただけでは使えないので色々と設定も追加しておきます。

$ rbenv install 2.4.0
$ rbenv rehash
$ rbenv global 2.4.0

インストールされたRubyのバージョンを確認

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]