さくらのVPS

さくらのVPS-CentOS7 公開鍵認証によるSSH接続

今回はさくらのVPSのCentOS7へのSSH接続方式を、パスワード認証から公開鍵認証へ変更する。
パスワード認証だとVPSサーバのIPアドレス、ポート番号がわかれば誰でもパスワードを試せるので、セキュリティは低い。
そのため、秘密鍵をもっているものしか接続できない公開鍵認証へ変更して、セキュリティを高める。

参考)SSH接続の設定変更方法
https://help.sakura.ad.jp/hc/ja/articles/206208161?_bdld=1dBjSj.mbWzn6r&_ga=2.214206807.1702531204.1528863799-1897814946.1520428821&_gac=1.190234201.1526953602.Cj0KCQjw3InYBRCLARIsAG6bfMQLXbpFphMQDJy2BdFZtvrXTdkvqz8cwyxNvTTV6iE5or40tV6H5osaAq91EALw_wcB

OSバージョン

cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

やること

1.公開鍵、秘密鍵の作成
2.VPSサーバの公開鍵認証の設定
3.接続確認

1.公開鍵、秘密鍵の作成

公開鍵と秘密鍵を格納するフォルダをデスクトップに作成しておく

Teratermを起動し、キャンセルボタンをクリックする。

設定⇒SSH鍵生成

RSAを選択、ビット数を2048として、生成

鍵を生成しましたと表示される
鍵パスフレーズ、パスフレーズの確認、にパスワードを入力。
(このパスワードはログイン時に使う)
パスワード入力後、公開鍵の保存、秘密鍵の保存をクリックし、先ほど作ったフォルダに保存する。

一旦、Teratermは終了させる。

2.VPSサーバの公開鍵認証の設定

TeratermでVPSサーバへログインし、先ほど作成した公開鍵「id_rsa.pub」をTeratermへドラッグする。
ファイルを転送しますか? と聞かれるので、scpをクリック。
scpをクリックすると、ユーザのホームディレクトリにドラッグした公開鍵が保存される。

lsで確認

$ ls
app  id_rsa.pub

保存されている。

ユーザのホームディレクトリに移動後、公開鍵認証の設定をする

$ mkdir .ssh 
$ chmod 700 .ssh 
$ cat id_rsa.pub > .ssh/authorized_keys 
$ chmod 600 .ssh/authorized_keys 
$ rm -f id_rsa.pub

確認する

$ ls -alF .ssh
total 8
drwx------ 2 vpsuser vpsuser   28 Jun 19 10:10 ./
drwx------ 6 vpsuser vpsuser 4096 Jun 19 10:10 ../
-rw------- 1 vpsuser vpsuser  403 Jun 19 10:10 authorized_keys

SSH接続の設定変更
ルートに移動

$ su -
Password:
Last login: Fri Jun 15 10:39:21 JST 2018 on pts/2
#

SSH接続の設定

vim /etc/ssh/sshd_config

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port *****     
・
# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
・
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication no

変更内容
①#Port 22 ⇒ Port ****
②#PermitRootLogin yes  ⇒ PermitRootLogin no
③PasswordAuthentication yes  ⇒ PasswordAuthentication no

①アクセスするポート番号を指定
デフォルトは22で、22以外にしておくとセキュリティが高まる。
SSHは22と知られているので、攻撃を受けやすくなるので。

②頭の#を消して、yesをnoに変更。
rootユーザでのログインをできなくする

③頭の#を消して、yesをnoに変更
今までののログイン方法であるパスワードでのログインをできなくする

SSH接続設定の反映

# systemctl restart sshd.service

もしSSHの接続ポートを変更した場合は、Firewallの設定も併せて変更が必要

参考)AWS Cloud9の環境をさくらVPSで構築する1
https://koooza.net/2018/06/05/aws-cloud9%E3%81%AE%E7%92%B0%E5%A2%83%E3%82%92%E3%81%95%E3%81%8F%E3%82%89vps%E3%81%A7%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B1/
「■より安全にするために、SSHのアクセスポートを変更する」 の部分を確認

試しにいつもログインしているユーザでログインしようとしても
ダメになった。

3.接続確認

公開鍵認証でログイン
Teratermで先ほど設定したポートを入力し、「OK]

ユーザ名、パスワード(公開鍵を生成したときに設定したパスワード)を入力
RSA/DSA/ECDSA/ED25519鍵を使う をクリック
秘密鍵 をクリックし、生成した秘密鍵(id_rsa)選択し、OK

無事ログインできた!!

Last login: Tue Jun 19 10:04:02 2018 from p2406167-ipngn200805osakachuo.osaka.ocn.ne.jp

SAKURA Internet [Virtual Private Server SERVICE]

[**** ~]$

-さくらのVPS