このブログはさくらVPSの環境下で動いているのですが、久々に新しくVPSを借りたのでホントの初期の初期の最低限やるべきことを書きました。
メモみたいなものなので、ざっくりです。
環境
- さくらVPS(v4) 東京リージョンが在庫切れだったので石狩リージョン
- 標準イメージのCentOS7を利用
サーバーに入ろう
$ ssh ipアドレス -lroot
とりあえずupdate
yum update
ユーザを追加する
# useradd ユーザ名
# passwd ユーザ名
→パスワード入力
対象ユーザーがsudoコマンドを叩ける状態にする
# usermod -G wheel ユーザ名
# visudo
→%wheel ALL=(ALL) ALLのコメントアウトが外されているか確認
$ ssh ipアドレス -lユーザ名
SAKURA Internet [Virtual Private Server SERVICE]
[ユーザ名@ホスト ~]$
$ sudo su
等打ってみてsudoコマンドが上手く動いていることを確認する
秘密鍵を生成する
今回は色々あって特定のディレクトリ下でやります。
これはwinなどのクライアント側から。
ssh-keygen?入ってないよって人はopensshのwindows版入れると良いのです。
https://github.com/PowerShell/Win32-OpenSSH/releases
$ ssh-keygen -t rsa -b 4096 -C "メアド等" -f sakura
先に公開鍵のファイルを渡しておくと良いでしょう。
$ scp sakura.pub 対象サーバーのユーザ名@対象サーバーのIP:/home/ユーザ名/
公開鍵を設置する
sshでサーバーに入ります。(今のところはパスワード認証で)
$ mkdir .ssh
$ chmod 700 .ssh
$ cat sakura.pub > .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ rm -f sakura.pub
SSH接続の設定をやる
$ sudo vi /etc/ssh/sshd_config
#Port 22
↓
Port 2222←などの任意の値にする
#PermitRootLogin yes
↓
PermitRootLogin no
rootユーザはSSHログイン出来ないようにする(セキュリティ上の対応)
PasswordAuthentication yes
↓
PasswordAuthentication no
パスワードでのログインを無効にする(これはさきに認証鍵でログインできるか確認してからのほうが良いかもですね)
sshdを再起動させる
$ sudo systemctl restart sshd
firewalldのsshの設定を修正する
このへんはroot権限のほうがやりやすそうです
$ sudo su
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-alt.xml
# vi /etc/firewalld/services/ssh-alt.xml
<port protocol="tcp" port="22"/>
↓
<port protocol="tcp" port="2222"/>
firewallをリロードして、追加したssh-altを読み込ませます。
# firewall-cmd --reload
追加して再読込。
# firewall-cmd --add-service=ssh-alt --permanent
# firewall-cmd --reload
入ったか確認。
# firewall-cmd --list-services
dhcpv6-client ssh-alt ssh
入ったらsshはいらないので消します。
# firewall-cmd --remove-service=ssh --permanent
# firewall-cmd --reload
sshの認証鍵で入れるか確認する
一旦そのまま認証鍵を指定してから入りますね。
なお、現在繋いでいたssh接続を終了するのではなく、新しいウィンドウで接続したほうが失敗してた時の対応が楽です。
$ ssh ipアドレス -lユーザ名 -isakura -p2222
Last login: Sat Apr 1 16:50:07 2017 from xxxxxxxxxxxx.xxxxx.xxxx.ne.jp
SAKURA Internet [Virtual Private Server SERVICE]
[ユーザ名@ホスト ~]$
とりあえずこれで基本的な対応は終わり。
実際にWebサーバーとして使う場合はfirewalldを複数開けておく必要がありますがー。
コメント