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