【ssh】公開鍵認証方式に変更して、パスワード認証をやめる
手順
1、秘密鍵と公開鍵のペアを作成する
サーバー側で作ってもよいし、TeraTermなどのソフトで作ってもよい。
[user1@localhost ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/user1/.ssh/id_rsa): Created directory '/home/user1/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user1/.ssh/id_rsa. Your public key has been saved in /home/user1/.ssh/id_rsa.pub. The key fingerprint is: 0e:10:41:3c:9b:03:ca:f0:e5:ef:e0:40:77:09:5f:d5 user1@localhost.localdomain
2、作成した公開鍵をサーバーに登録する。ユーザーディレクトリにある「authorized_keys」にカギを追加する。
sshd が使う公開鍵の名前(AuthorizedKeysFile)が、デフォルトでユーザーのホームディレクトリの .ssh/authorized_keys となっている。特に変更する理由がなければ、デフォルトに合わせる。
[user1@localhost ~]$ ls -la /home/user1/.ssh/ ← 1の手順でここに作られている total 32 drwx------ 2 user1 user1 4096 Jun 7 19:46 . drwx------ 3 user1 user1 4096 Jun 7 19:45 .. -rw------- 1 user1 user1 1743 Jun 7 19:46 id_rsa -rw-r--r-- 1 user1 user1 409 Jun 7 19:46 id_rsa.pub [user1@localhost ~]$ mv /home/user1/.ssh/id_rsa.pub /home/user1/.ssh/authorized_keys ← 所定の名前に変更する [user1@localhost ~]$ ls -la /home/user1/.ssh/ total 32 drwx------ 2 user1 user1 4096 Jun 7 20:07 . drwx------ 3 user1 user1 4096 Jun 7 19:45 .. -rw-r--r-- 1 user1 user1 409 Jun 7 20:04 authorized_keys ← 公開鍵はこれで準備完了 -rw------- 1 user1 user1 1743 Jun 7 20:04 id_rsa ← 秘密鍵をクライアント側に持っていって使用する
3、サーバー側でSSHサーバーの設定を変更し、公開鍵暗号でのログインを指定する。
# vi /etc/ssh/ssh_config ...... #PasswordAuthentication yes PasswordAuthentication no ← パスワード認証をしない ...... ...... #できればやっておくとよい #PermitRootLogin no ←rootログインを禁止 #PermitEmptyPassword no ←パスワードなしのログインは許可しない #AllowUsers aaa bbb ccc@192.168.123.123 ←指定したユーザーのみログインを許可 ......
設定したら、sshd再起動。
# /etc/init.d/sshd restart
4、SSHクライアント側でも公開鍵による認証を行うように設定する。
ファイル /home/user1/.ssh/id_rsa を、FTPでもSCPでもよいので、可能な手段で持ってくる。
ちなみにTeratermでもファイル転送可能。
接続時はその秘密鍵を使用する。
コメント