Centos7 sshログインを公開鍵方式へ変更する方法

centos7

パスワード認証は簡単で便利ですが、セキュリティ的にあまりよろしくないので公開鍵認証方式へ変更する方法です。今回は例としてcentos7上でuserという名前のユーザへ設定を加えていきます。

まず、ssh用ディレクトリを作成します。ある場合はここはスキップ。

$ cd ~
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh

キーペアを作成します。最近のサービスは2048だと短すぎて鍵登録を受け付けてくれないサービスなどがあるので、少し長めにしておきます。

鍵の流出なども考慮した場合、鍵にもパスワードを設定しておくとよりよいかと思います。

$ ssh-keygen -t rsa -b 4096
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:
SHA256:fkvXxItwqbxLyCWAC5el8s3kYuYYkNWi9ZyIEvodwzA
The key's randomart image is:
+---[RSA 4096]----+
|  ..  .          |
|.oE .=           |
|+=oO=.o          |
|=..=B* .     o   |
|....*o+ S o o o  |
|  .*.. o = + + . |
|  . .   + * o o  |
|         + +     |
|          +.     |
+----[SHA256]-----+

鍵が生成されたかを確認します。.pubが付いているほうが公開鍵、ついてない方が秘密鍵(バレてはいけない方)です。

$ ls
id_rsa  id_rsa.pub

生成した公開鍵を認証済みキーとして登録し、パーミッションを変更します。パーミッション変更を誤ると認証が通らないので注意。

$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys

これで生成された秘密鍵(ここではid_rsa)をSCPなどで、自PCなどの作業環境へコピーします。鍵認証でのログイン確認後はサーバ側の秘密鍵は削除しましょう。

さらにパスワード認証を鍵認証のみへ変更する場合はSSHDの設定を変更し、リロードします。

$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication no

$ sudo service sshd reload

コメント

タイトルとURLをコピーしました