CentOSで公開鍵認証のログインのみにする設定

サーバを外部公開する際はセキュリティ対策を怠ってはいけませんよね。
割と王道なのが、パスワードログインを禁止し、サーバ側で許可したユーザのみ認証させる秘密鍵認証ですね。

サーバ上での鍵生成

ssh-keygenコマンドで鍵生成

[yuta@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yuta/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/yuta/.ssh/id_rsa.
Your public key has been saved in /home/yuta/.ssh/id_rsa.pub.
The key fingerprint is:
d6:39:9a:22:05:6a:8e:27:4a:47:bd:1e:ec:61:81:63 yuta@localhost.localdomain
The key’s randomart image is:
+–[ RSA 2048]—-+
+—————–+
[yuta@localhost ~]$
[yuta@localhost ~]$

 

ホームディレクトリの配下に.sshが作成され、中に鍵ファイルが生成される

[yuta@localhost ~]$ cd .ssh/
[yuta@localhost .ssh]$ ls
id_rsa  id_rsa.pub
[yuta@localhost .ssh]$

 

authorized_keysに鍵を登録

[yuta@localhost .ssh]$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
[yuta@localhost .ssh]$ chmod 600  ~/.ssh/authorized_keys
[yuta@localhost .ssh]$ ls -l authorized_keys
-rw——-. 1 yuta yuta 408 Jul 16 05:30 authorized_keys
[yuta@localhost .ssh]$

 

WinSCPでid_rsaをクライアント端末へ回収
スクリーンショット 2016-07-16 21.41.52

パスワード認証の禁止、鍵認証の有効化

rootユーザでsshd_configを編集する。

[root@localhost ~]# su –
Last login: Sat Jul 16 05:36:44 PDT 2016 on pts/2
[root@localhost ~]#
[root@localhost ~]# vi /etc/ssh/sshd_config

 

編集箇所

PubkeyAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication no

 

TeraTermから秘密鍵でのログイン

ダウンロードしたid_rsaを指定する
スクリーンショット 2016-07-16 21.48.08

無事ログインできた
スクリーンショット 2016-07-16 21.52.27

 

正規表現 先読みと後読み

僕はインフラ系エンジニアなので、正規表現はがっつり使わないのですが、使えるとデータ加工とかで活躍してくれます。

今回は先読みと後読みについて。

・肯定先読み
「花びら(?=雫)」
“花びら”の直後に”雫”がある”花びら”を検索する

ばらばらに 散らばる 花びら 雫は 紅
ばらばらに散らばる花びら雫は紅

 

・肯定後読み
「(?<=散らばる)花びら」
“花びら”の直前に”散らばる”がある”花びら”を検索する

ばらばらに 散らばる 花びら 雫は 紅
ばらばらに散らばる花びら雫は紅

 

・否定先読み
「(花びら(?!雫)」
“花びら”の直後に”雫”がない”花びら”を検索する

ばらばらに 散らばる 花びら 雫は 紅
ばらばらに散らばる花びら雫は紅

 

・否定後読み
「(?<!散らばる)花びら」
“花びら”の直前に”散らばる”がない”花びら”を検索する

ばらばらに 散らばる 花びら 雫は 紅
ばらばらに散らばる花びら雫は紅

 

こういう小技を使いこなせるとかっこいいですよね~
すんなり使いこなせるように修行します!