SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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でもファイル転送可能。

接続時はその秘密鍵を使用する。

関連するメモ

コメント