harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

ssh 公開鍵認証と公開鍵の登録

   


▼ssh 公開鍵認証と公開鍵の登録

作業自体は簡単なんですが
ユーザー名やらいろいろこんがらがるので、メモを作成します。

【ローカル側ホスト】サーバへログインしたいクライアント側のアカウント

ホスト名:client
ユーザ名:yeah

【リモート側サーバ】リモートでログインされるサーバ側のアカウント

ホスト名:example
サーバ名:svruser

1)クライアントで公開鍵を生成

ローカル側ホストで、ログインしたいユーザになり
公開鍵・秘密鍵を作成します。

ここではDSAキーを生成してますが
RSAキーでもOK。

[root@client root]# su - yeah
[yeah@client yeah]$ ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/home/yeah/.ssh/id_dsa):		←このままEnterでOK
Created directory '/home/yeah/.ssh'.
Enter passphrase (empty for no passphrase):			←パスフレーズを入力
Enter same passphrase again:					←再度フレーズを入力
Your identification has been saved in /home/yeah/.ssh/id_dsa.
Your public key has been saved in /home/yeah/.ssh/id_dsa.pub.
The key fingerprint is:
46:f9:72:d9:d4:9e:44:4b:24:be:3c:d6:5c:a3:d5:41 yeah@client.org
[yeah@client yeah]$

生成されたDSAキーを確認。
公開鍵はid_dsa.pub。

[yeah@client yeah]$ ls -al .ssh/ 
合計 20
drwx------    2 yeah     yeah         4096  4月  4 15:20 .
drwx------    5 yeah     yeah         4096  4月  4 15:18 ..
-rw-------    1 yeah     yeah          668  4月  4 15:18 id_dsa
-rw-r--r--    1 yeah     yeah          610  4月  4 15:18 id_dsa.pub
-rw-r--r--    1 yeah     yeah          222  4月  4 15:20 known_hosts
[yeah@client yeah]$

※今回は鍵認証のみで、パスフレーズは入力していません。

2)サーバ側で公開鍵を登録

SCPやフロッピーなどでサーバへ公開鍵を移し、
authorized_keyへ登録します。

※サーバ側で生成したid_dsaがありますが
 間違えないように注意!

[svruser@example ~]$ pwd
/home/svruser/.ssh
[svruser@example .ssh]$  ls -al .ssh/
drwx------    2 user     user         4096  4月  4 15:20 .
drwxr-xr-x   19 user     user         4096  4月  4 15:20 ..
-rw-r--r--    1 user     user        11609  4月  4 15:20 authorized_keys
-rw-------    1 user     user          736  8月 31  2004 id_dsa		←これは無関係
-rw-r--r--    1 user     user          601  8月 31  2004 id_dsa.pub		←これも無関係
-rw-------    1 user     user          951  3月  7 18:40 id_rsa
-rw-r--r--    1 user     user          221  3月  7 18:40 id_rsa.pub
-rw-r--r--    1 user     user         6296  3月 31 22:48 known_hosts
[svruser@example ~]$ 
[svruser@example ~]$ cat id_dsa.pub >> authorized_keys

3)ログインテスト

サーバ側で公開鍵を登録したユーザーを指定し、
公開鍵を作成したユーザーでログイン。
初めてログインするホストの場合は“このまま続けるか?”と警告が出ますが
そのまま“yes”で継続。

[yeah@client yeah]$ ssh svruser@***.***.***.***
The authenticity of host '***.***.***.*** (***.***.***.***)' can't be established.
RSA key fingerprint is 9a:**:c6:e1:**:d9:8c:46:**:86:**:69:3a:**:3f:0d.
Are you sure you want to continue connecting (yes/no)? yes			←“yes”を入力
Warning: Permanently added '***.***.***.***' (RSA) to the list of known hosts.
Last login: Mon Apr  4 15:18:20 2005 from ***-***-***-***.hoge.example.tld
[svruser@example svruser]$

上記でログイン確認OK。
※今回はパスフレーズを省略したので、次回からはパスワード無しで
 ログインできてますが、パスフレーズは必ず設定しましょう。

 - GNU/Linux, ssh