トップページに戻る


ssh接続を鍵認証で行なう
最終更新日:2013.3.30

注意: あらかじめ初期設定は終わっていることを前提としています。
root権限でリモートログイン出来ないように設定しておいてください。


デフォルトではssh接続は公開鍵認証ではなく、パスワード認証されるよう設定されています。
この状態では、

この条件が揃っていれば、誰でもサーバーにアクセス出来て危険です。
これを鍵認証のみssh接続を許可するように設定変更しましょう。

クライアントで鍵を作成

(1) まず、クライアントで鍵を作ります(例では、client_rsaというRSA鍵を作成)。

$ cd ~/.ssh
$ ssh-keygen -f client_rsa -t rsa
Enter passphrase: パスワードを入力
Enter some passphrase again: パスワードをもう一度入力

[Tips]ssh-keygen

(2)ユーザーフォルダ配下に .ssh フォルダが作成され、以下のような鍵が作成されます。

$ ls ~/.ssh
client_rsa   client_rsa.pub

■client_rsa

 秘密鍵です。認証時に使うため、リモートアクセスしたいクライアントに保存しておきます。

■client_rsa.pub

 公開鍵です。サーバ側に登録して設定変更する事で、鍵認証でのリモートログオンが可能になります。

鍵をサーバーに登録

(3)scpコマンドでclient_rsa.pubを送ります。

$ scp ~/.ssh/client_rsa.pub admin@192.168.1.100:~
admin@192.168.1.100 ‘s password:(パスワードを入力)
client_rsa.pub      100%   16   0.0 KB/s   00:00

(4)sshコマンドでサーバーに入ります。

$ ssh admin@192.168.1.100
admin@192.168.1.100 ‘s password:(パスワードを入力)
Last login: Sat May 22 14:26:25 2010 from 192.168.1.55
[admin@centos ~]$

(5)公開鍵をリモートサーバーに登録します。
.sshディレクトリがあるか確認します。

[admin@centos ~]$ ls -aF
./   .bash_history  .bash_profile  .mozilla/  .viminfo
../  .bash_logout   .bashrc        .ssh/      .zshrc

~/.sshディレクトリがある場合

[admin@centos ~]$ mv ~/client_rsa.pub ~/.ssh
[admin@centos ~]$ cat ~/.ssh/client_rsa.pub >> authorized_keys
[admin@centos ~]$ chmod 600 authorized_keys
authorized_keysというファイルに公開鍵を書き込みます。

~/.sshディレクトリが無い場合

以下のようにして、ディレクトリを作って作業を行なってください。
[admin@centos ~]$ cd ~
[admin@centos ~]$ mkdir .ssh
[admin@centos ~]$ chmod 700 .ssh
[admin@centos ~]$ mv ~/client_rsa.pub ~/.ssh
[admin@centos ~]$ cat ~/.ssh/client_rsa.pub >> authorized_keys
[admin@centos ~]$ chmod 600 authorized_keys
authorized_keysというファイルに公開鍵を書き込みます。

(6)サーバーにコピーした鍵は削除します。

[admin@centos ~]$ rm ~/.ssh/client_rsa.pub

(7)いったんログアウトしてログインしてみましょう。

[admin@centos ~]$ exit
Connection to centos closed.

$ ssh -i ~/.ssh/client_rsa admin@192.168.1.100
Last login: Sat May 22 14:27:00 2010 from 192.168.1.55
[admin@centos ~]$

設定を間違っていなければ、パスワード無しで認証出来るようになったはずです。

(8)パスワード認証を不可に設定します。

[root@centos ~]# vi /etc/ssh/sshd_config
PasswordAuthentication yes
↓
PasswordAuthentication no

(9)sshサーバーを再起動します。

[root@centos ~]# service sshd restart
sshd を再読み込み中:                                       [  OK  ]

以上。

参考ページ