パスワードなしSSH通信の設定手順
パスワードなしでSSH通信するためのキー作成手順
sshキーを持ち合うことでパスワードなしで通信し合うことが可能になります。キーを持たなければ通信することはできないのでセキュアでもあります。この設定方法をこれからご説明します。
設定方法
通信し合うサーバーは「server01」と「server02」、ユーザーは「grid」で設定します。まずは設定の流れを説明します。
- gridユーザーでログインします。
- dsaとrsaのキーを作成します。
- 作成されたdsaとrsaの公開キーの内容をファイル「authorized_keys」に書き出します。
- 作成した「authorized_keys」をリモートノードのgridホームディレクトリ以下「.ssh」に転送します。
- リモートノードでも手順2と手順3を実施します。「authorized_keys」には4つのキーが
- 4つのキーが書かれている「authorized_keys」を両ノードの「.ssh」以下に配置します。
- 通信テストを行い、パスワードなしで実行できたら設定完了です!
それでは上記手順を実施していきます。(※上記の手順番号と以下の手順番号は一致しておりません。)
1.server01にgridユーザーでログインします。
[root@server01:/] su - grid
2.rsaキーを作成します。パスワードも求められますが、何も入力せずにEnterを押して下さい。
[grid@server01:/home/grid] ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/grid/.ssh/id_rsa): Created directory '/home/grid/.ssh'. Enter passphrase (empty for no passphrase): "何も入力せずにEnterキー" Enter same passphrase again: "何も入力せずにEnterキー" Your identification has been saved in /home/grid/.ssh/id_rsa. Your public key has been saved in /home/grid/.ssh/id_rsa.pub. The key fingerprint is: c9:e4:34:2e:65:4a:2a:45:ce:0c:50:a3:f6:55:80:99 grid@server01 The key's randomart image is: +--[ RSA 2048]----+ |.o+ =... | | . E . | |.. =.. * | |. ...o X o | | ... o S | | . . | | | | | | | +-----------------+ [grid@server01:/home/grid]
3.rsaキーが作成されていることを確認します。「id_rsa」が秘密鍵で「id_rsa.pub」が公開キーです。
[grid@server01:/home/grid] ls -l ./.ssh 合計 16 -rw------- 1 grid oinstall 1766 Oct 10 13:44 id_rsa -rw-r--r-- 1 grid oinstall 395 Oct 10 13:44 id_rsa.pub [grid@server01:/home/grid]
4.次にdsaキーを作成します。パスワードは入力せずにEnterを押します。
[grid@server01:/home/grid] ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/grid/.ssh/id_dsa): Enter passphrase (empty for no passphrase): "何も入力せずにEnterキー" Enter same passphrase again: "何も入力せずにEnterキー" Your identification has been saved in /home/grid/.ssh/id_dsa. Your public key has been saved in /home/grid/.ssh/id_dsa.pub. The key fingerprint is: 4e:ba:8f:49:42:1a:22:f3:02:bb:a8:2b:6d:98:ad:1f grid@server01 The key's randomart image is: +--[ DSA 1024]----+ | | | | | | | | |= . . S | |o= + + | |o=E . o . | |=o+. o + | |O=. +.. | +-----------------+ [grid@server01:/home/grid]
5.rsaキーとdsaキーが作成されていることを確認します。
[grid@server02:/home/grid] ls -l ./.ssh 合計 32 -rw------- 1 grid oinstall 751 Oct 10 13:46 id_dsa -rw-r--r-- 1 grid oinstall 603 Oct 10 13:46 id_dsa.pub -rw------- 1 grid oinstall 1766 Oct 10 13:44 id_rsa -rw-r--r-- 1 grid oinstall 395 Oct 10 13:44 id_rsa.pub [grid@server02:/home/grid]
6.rsaとdsaの公開キーの内容をファイル「authorized_keys」にリダイレクトで書き出します。
cd .ssh cat id_dsa.pub >> authorized_keys cat id_rsa.pub >> authorized_keys
7.今度は、server02にgridユーザーでログインしrsaキーを作成します。
[root@server02:/] su - grid [grid@server02:/home/grid] ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/grid/.ssh/id_rsa): "何も入力せずにEnterキー" Created directory '/home/grid/.ssh'. Enter passphrase (empty for no passphrase): "何も入力せずにEnterキー" Enter same passphrase again: "何も入力せずにEnterキー" Your identification has been saved in /home/grid/.ssh/id_rsa. Your public key has been saved in /home/grid/.ssh/id_rsa.pub. The key fingerprint is: 1a:c6:9f:ab:40:02:d8:47:22:7f:fc:0e:50:94:6e:0f grid@server02 The key's randomart image is: +--[ RSA 2048]----+ |. ..+. | |.+ =. | |o +.+ | | . +Eo | | ..oo= S | | o +.+ . | | . o o | | . . | | ... | +-----------------+ [grid@server02:/home/grid]
8.dsaキーも作成します。
[grid@server02:/home/grid] ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/grid/.ssh/id_dsa): "何も入力せずにEnterキー" Enter passphrase (empty for no passphrase): "何も入力せずにEnterキー" Enter same passphrase again: "何も入力せずにEnterキー" Your identification has been saved in /home/grid/.ssh/id_dsa. Your public key has been saved in /home/grid/.ssh/id_dsa.pub. The key fingerprint is: f8:d8:b7:06:98:eb:f7:44:49:cd:1f:fa:aa:81:1c:4b grid@server02 The key's randomart image is: +--[ DSA 1024]----+ | | | o | | . o . | | . . . o . | | .oE o . . | | o*.= . | | ..*.+ . | | . .o.o . | | ... o+.. | +-----------------+ [grid@server02:/home/grid]
9.server01で作成した「authorized_keys」を、server02のgridユーザーフォームディレクトリ以下の「.ssh」にFTP転送します。
[grid@server01:/home/grid/.ssh] ftp server02 'server02' へ接続。 220 server02 FTP server (Version 4.2 Mon Dec 3 12:04:40 CST 2012) ready. 名前 (server02:root): grid 331 Password required for grid. パスワード: 230 User grid logged in. ftp> cd .ssh 250 CWD command successful. ftp> put authorized_keys 200 PORT command successful. 150 Opening data connection for authorized_keys. 226 Transfer complete. 1000 バイトを 0.002807 秒で送信しました (347.9 キロバイト/秒) ローカル: authorized_keys リモート: authorized_keys ftp> bye 221 Goodbye. [grid@server01:/home/grid/.ssh]
10.server02で、rsa公開キーとdsa公開キーの内容をserver01から転送されてきた「authorized_keys」に追記します。
[grid@server02:/home/grid] cd .ssh [grid@server02:/home/grid/.ssh] cat id_dsa.pub >> authorized_keys [grid@server02:/home/grid/.ssh] cat id_rsa.pub >> authorized_keys
11.この時点で、server02の「authorized_keys」にはserver01とserver02のgridユーザーのrsaキーとdsaキーが入ったことになり、合計4つのキーが入っていることになります。そのファイルをserver01へFTP転送します。
[grid@server02:/home/grid/.ssh] ftp server01 'server01' へ接続。 220 server01 FTP server (Version 4.2 Mon Dec 3 12:04:40 CST 2012) ready. 名前 (server01:root): grid 331 Password required for grid. パスワード: 230 User grid logged in. ftp> cd .ssh 250 CWD command successful. ftp> put authorized_keys 200 PORT command successful. 150 Opening data connection for authorized_keys. 226 Transfer complete. 2000 バイトを 0.003267 秒で送信しました (597.8 キロバイト/秒) ローカル: authorized_keys リモート: authorized_keys ftp> bye 221 Goodbye. [grid@server02:/home/grid/.ssh]
12.ssh用のキー作成はこれで完了です。次に通信テストを行います。1回目の初めての通信では「yes/no」の入力を求められますが、2回目以降からは何も入力することなく通信できることを確認します。ではまず1回目。
[grid@server01:/home/grid/.ssh] ssh server02 hostname The authenticity of host 'server02 (10.10.9.12)' can't be established. RSA key fingerprint is 47:d0:2e:a1:67:e6:e4:22:c2:36:16:b3:80:d6:46:64. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'server02,10.10.9.12' (RSA) to the list of known hosts. server02 [grid@server01:/home/grid/.ssh]
13.hostnameコマンドを実行した結果が返ってきました。1回目の通信は成功です。では2回目いきます。
[grid@server01:/home/grid] ssh server02 hostname server02 [grid@server01:/home/grid]
何も問われることなくhostnameコマンドの結果が返ってきました。2回目のテストも成功しました。これでパスワードなしssh通信の設定は完了です。
END
タグ:authorized_keys, dsa, rsa, ssh, ssh-keygen, パスワードなし