コンパネから初期設定が完了した後に、macの方はターミナル、windowsの方はpower shellから下記コマンドを入力して、サーバーにアクセスできるか確認します。
ssh root@xxx.xxx.xxx.xxx
初回アクセス時には、
Are you sure you want to continue connecting (yes/no)?
と聞いてくるので、yesと入力してください。
次に、passwordが聞かれるので、初期設定時に入力したrootのパスワードを入力してください。
アクセスができましたら、最初にOSのアップデートを行います。下記コマンドを入力してアップデートを行なっていきます。`-y`はオプションになっており、アップデートするパッケージが表示された後、上記のように`Is this ok [y/d/N]:`みたいに何度か聞かれるので、毎回入力するのが面倒なので強制的に全部`yes`にするという意味があります。
yum -y install update
アップデートが完了すると、最後に`complete!`の文字が表示されます。
もし、アップデートするパッケージがなければ、`No Packages marked for Update`のように表示されます。
お使いの環境によっては、`完了しました!`のように日本語で表示されることもありますが、問題ありませんので、そのまま進めてください。
安全にサーバーを扱うために
現状、rootユーザーでログインしていますが、この状態は非常に危険です。rootユーザーはサーバーの管理者です。このパスワードが盗まれてしまいますと、サーバーを乗っ取られてしまうことになります。
そこで、管理者権限のない、一般ユーザを作成し、直接rootユーザーでログインできないように変更していきます。
※rootユーザーで操作したい場合には、一般ユーザーでログインした後に、rootユーザーに切り替えます。
一般ユーザの作成
rootユーザーでログインしている状態で、
adduser 任意のユーザー名
passwd 上記で設定したユーザー名
パスワードを求められるので、入力します。
ここまで出来たら、一旦サーバーから抜けます。
exit or logout
rootユーザーでログインした時と同様の手順で、先程作成したユーザーでアクセスしてみてください。
パスワードも求められるので、そちらもお忘れなく。
ssh ユーザー名@xxx.xxx.xxx.xxx
アクセスできましたら、rootユーザーに切り替えてみます。
su:switch user
su –
rootユーザーのパスワードが求められるので、入力して切り替えてください。
rootで直接アクセスできないように変更
変更する方法としては、sshサーバーの設定を管理しているファイルを編集していく必要があります。
ここからは、ファイルを編集していきますので、必ずバックアップを取りながら進めてください。
その方法も一緒にやっていきます。
1:sshサーバーの設定ファイルのあるディレクトリに移動
cd /etc/ssh
2:バックアップをとる
cp sshd_config sshd_config.old
3:vimを使ってファイルを編集
vim sshd_config
:set number or :se nu->行数を表示
49行目にある行を変更
#PermitRootLogin yes
↓
PermitRootLogin no
※vimの使い方の解説はしませんので、もし操作が分からなければ、ドットインストールなどで学んでください。
[vim入門 (全18回) – プログラミングならドットインストール]
先程編集したファイルをsshサーバー(デーモン)で有効にするために、再起動を行います。
何も返って来なければ、再起動に成功しています。
デーモン:常に起動しているソフトウェアプロセス
systemctl restart sshd.service
ここまでできたら、サーバから抜けて、rootユーザーで直接ログインできないか確かめてください。
## セキュリティを向上するために、sshのportを変更
まず、これまでの手順にしたがってrootユーザーでログインしている状態にします。
そして、先程編集したsshd_configファイルを編集していきます。
17行目付近にある下記の文字列を変更
56789は任意のもの変更可能です。
#Port 22
↓
Port 56789
前回と同様に設定を有効にします。
systemctl restart sshd.service
※空いているportの調べ方
netstat -an
現状のまだ接続ができないので、追加設定をする必要があります。
CentOS7からはfirewalldがデフォルトで有効になっているので、今回のようなSSHのポート番号を変更する際にはそのルールを変更する必要があります。
設定ファイルをコピーします。
cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
コピーができたら、次にバックアップを取ります。
cp /etc/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml.org
設定ファイルを編集していきます。
vim /etc/firewalld/services/ssh.xml
5行目にある箇所を変更します。
設定したファイルを有効にします
successが返ってきたら、sshdも再起動します。
firewall-cmd –reload
systemctl restart sshd
ここまでできたら、接続できるかの確認をします。
ssh -p 56789 ユーザー名@xxx.xxx.xxx.xxx
パスワード認証から、鍵認証に変更
ローカルのPCに.sshフォルダが確認してみてください。
値が返ってくれば、フォルダがあります。
ls -a ~/ | grep .ssh
ない方は、下記コマンドで作成してください。
mkdir ~/.ssh
chmod 700 ~/.ssh
ここからディレクトリに移動して、鍵を作成していきます。
パスワードが聞かれますが、今回は不要なので、そのままEnterしてください。
cd ~/.ssh
ssh-keygen -t rsa -b 4096 -f client_rsa
`ls`でコマンドで`client_rsa`のファイルができているか確認してください。
公開鍵の内容をクリップボードにコピー
cat my_hp.pub | pbcopy
サーバー側の公開鍵設定
一般ユーザーでログインしている状態かつホームディレクトリ(ログイン直後のディレクトリ)で下記コマンドを入力していきます。
mkdir .ssh
chmod 700 .ssh
cd .ssh
authorized_keysというファイルを作成します。
vim authorized_keys
そして、先程コピーした公開鍵を貼り付けます。
最後にパーミッションを変更します。
chmod 600 authorized_keys
これで全ての設定が完了です。
サーバーから抜けて、下記コマンドでログインできるか試してみてください。
ssh -i ~/.ssh/client_rsa -p 56789 ユーザー名@xxx.xxx.xxx.xxx
最後にパスワード認証できないように変更しておきましょう。
rootユーザーに切り替え、sshd_configを再度編集します。
su –
cd /etc/ssh
vim sshd_config
78行目付近にある箇所を変更します。
PasswordAuthentication yes
↓
PasswordAuthentication no
そして、sshdを再起動すれば、初期設定の完了です。
systemctl restart sshd
お疲れ様でした。
おまけ
最初にインストールしたOSの情報は下記コマンドで見れます
cat /etc/redhat-release
CentOSで使用しているパッケージマネージャーのyumはYellowdog Updater Modifiedの略です。
昔はrpmを使用していましたが、yumを使用するとパッケージ間の依存関係を自動調整してくれます。