ゾンビ狩りクラブ

Linux, Server, Network, Security 関連などをゆるーくテキトーに載せてます

[ConoHa] CentOS7 ssh 公開鍵認証 クイックセットアップ

conoha の vps に CentOS7 をインストールした状態から、ssh を公開鍵鍵認証で繋げるまでのセットアップ手順になります。

Index

1. パッケージのアップデート

[root@v157-7-52-x .ssh]$ yum update

2. SELINUXの無効化

[root@v157-7-52-x .ssh]$ getenforce
Enforcing
[root@v157-7-52-x .ssh]$ setenforce 0
[root@v157-7-52-x .ssh]$ getenforce
Permissive

これで一時的に SELINUX が無効になったが、再起動すると有効になってしまう。

再起動しても無効の設定を維持にするには、/etc/selinux/config を以下のように編集する。

[root@v157-7-52-x .ssh]$ /etc/selinux/config

[-] SELINUX=enforcing
[+] SELINUX=disabled

3. ユーザの作成

root で作業するのは良くないので、ユーザを追加する。 また、sudo を使用出来るように作成したユーザを wheel グループに追加する。

[root@v157-7-52-x .ssh]$ useradd user
[root@v157-7-52-x .ssh]$ passwd user
[root@v157-7-52-x .ssh]$ usermod -G wheel user

wheelグループにsudoを許可する。

[root@v157-7-52-x .ssh]$ visudo

[-] #%wheel ALL=(ALL) ALL
[+] %wheel ALL=(ALL) ALL

4. sshの設定

ポート番号の変更と root でのログインを無効にする。

[root@v157-7-52-x .ssh]$ vi /etc/ssh/sshd_config

[-] #Port 22
[+] Port 12345    # ポート番号を変更

[-] #PermitRootLogin yes
[+] PermitRootLogin no    # rootでのログイン禁止

sshd をリロードして設定を有効にする。

[root@v157-7-52-x .ssh]$ systemctl restart sshd

5. Firewallの穴あけ

次に ssh_config で変更したポート番号を穴あけする。

[root@v157-7-52-x .ssh]$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
[root@v157-7-52-x .ssh]$ vi /etc/firewalld/services/ssh.xml

[-] <port protocol="tcp" port="22"/>
[+] <port protocol="tcp" port="1234"/>

firewalld をリロードして設定を反映する。

[root@v157-7-52-x .ssh]$ firewall-cmd --reload

6. ローカルからvpsに接続

これでパスワード認証で繋がるようになるので、ローカルから ssh コマンドを使用して vps に接続する。

$ssh user@157.7.52.x -p 12345

7. 公開鍵鍵認証設定

パスワード認証だとセキュリティ的によろしくないので、公開鍵鍵認証にするための設定を行う。

7.1 鍵作成

ホームディレクトリ下に .ssh フォルダを作成し、鍵を作成する。

[user@v157-7-52-x ~]$ pwd
/home/user
[user@v157-7-52-x ~]$ ls
[user@v157-7-52-x ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc
[user@v157-7-52-x ~]$ mkdir .ssh
[user@v157-7-52-x ~]$ chmod 700 .ssh
[user@v157-7-52-x ~]$ cd .ssh
[user@v157-7-52-x .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
...

7.2 名前とパーミッションの変更

公開鍵の名前を authorized_keys に変更、それとパーミッションも変更する。

[user@v157-7-52-x .ssh]$ ls
id_rsa  id_rsa.pub
[user@v157-7-52-x .ssh]$ mv id_rsa.pub authorized_keys
[user@v157-7-52-x .ssh]$ chmod 600 authorized_keys

7.3 秘密鍵の送信

ローカルで vps にある秘密鍵を scp を使用して持ってくる。

% scp -P 27639 user@157.7.52.x:/home/user/.ssh/id_rsa ./

7.4 パスワード認証の無効化

vps の sshd_config を編集し、パスワード認証を無効にする。

[user@v157-7-52-x ~]$ sudo vi /etc/ssh/sshd_config

[-] PasswordAuthentication yes
[+] PasswordAuthentication no

[user@v157-7-52-x ~]$ sudo systemctl restart sshd

パスワード認証が無効になっていることを確認する。

% ssh user@157.7.52.x -p 27639
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

8. 公開鍵認証でvpsに接続

持ってきた秘密鍵を使用して vps に接続する。

% ssh user@157.7.52.x -p 27639 -i ./id_rsa
Last login: Sun Oct  8 16:23:59 2017 from hoge
[user@v157-7-52-x ~]$

無事に接続することができた。

書籍

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド

  • 作者: 有限会社ナレッジデザイン大竹龍史,市来秀男,山本道子,山崎佳子
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2017/03/22
  • メディア: 単行本
  • この商品を含むブログを見る

実践!  CentOS 7 サーバー徹底構築

実践! CentOS 7 サーバー徹底構築