日常生活では、テスト環境であろうと実稼働環境であろうと、複数のサーバー (クラスター) をインストールして構成するときに、クラスター内のサーバーへのパスワードなしの SSH アクセスをセットアップすることが必要になることがよくあります。たとえば、Hadoop や HBase などのクラスター、またはその後の運用とメンテナンスを容易にするために SSH パスワードなしの構成を必要とする複数のサーバーのインストールと構成。
テスト環境を構築する最近のプロセスに基づいて、複数のサーバーへのパスワードなしの相互 SSH アクセスを迅速に構成する方法を説明しましょう。これは主に、ホスト名の変更、集約サーバーの秘密キーの構成、他のサーバーの秘密キーの集約、集約キー ファイルのコピー、know_hosts ファイルの生成、および know_hosts ファイルのコピーといういくつかの手順に分かれています。
1. クラスターの計画
ホストIP |
ホスト名 |
10.141.93.101 |
dmz01 |
10.141.93.102 |
dmz02 |
10.141.93.103 |
inside01 |
10.141.93.104 |
inside02 |
10.141.93.105 |
inside03 |
10.141.93.106 |
inside04 |
10.141.93.107 |
inside05 |
10.141.93.108 |
inside06 |
10.141.93.109 |
inside07 |
10.141.93.110 |
inside08 |
10.141.93.111 |
inside09 |
10.141.93.112 |
inside10 |
10.141.93.113 |
inside11 |
10.141.93.114 |
inside12 |
10.141.93.115 |
inside13 |
10.141.93.116 |
inside14 |
10.141.93.117 |
inside15 |
10.141.93.118 |
inside16 |
クラスターには合計 18 台のサーバーがあり、DMZ エリアの 2 台のサーバーと INSIDE エリアの 16 台のサーバーに分かれています。主にWebサーバーやアプリケーションサーバー、データベース、キャッシュなどに使用されます。アプリケーションの展開とクラスター サーバーの管理を容易にするために、18 台のサーバーがパスワード不要の SSH 相互アクセス用に構成されています。
2. ホスト名を変更します
システムまたはクラウド ホストの初期インストールに関係なく、ホスト名「localhost」または「VM_75_173_centos」ではサーバーの機能を簡単に区別できません。したがって、インストール、展開、保守が容易で、ホスト名も再変更されます。
ホスト名を変更するには、次のコマンドを使用します:
hostnamectl set-ホスト名 inside01
上記のコマンドを使用してホスト名を変更し、ssh 経由で再度ログインすると、ホスト名が変更されたことがわかります。
3. アグリゲーションサーバーの秘密キーを設定します
ここでのいわゆる集約サーバーは、選択したクラスター内のサーバーであり、他のサーバーはパスワードの信頼なしでそのサーバーと SSH を実行します。この記事では、集約サーバーとして dmz01 (10.141.93.101) を選択します。関係図は次のとおりです。
他のサーバーは、dmz01 への SSH ログイン用にパスワードなしの信頼構成を実行します。ここで、dmz01 は集約サーバーです。
集約サーバーの秘密キーを構成するコマンドは次のとおりです:
[root@dmz01 ~]#ssh-keygen -t rsa
公開/秘密 RSA キーのペアを生成します。
キーを保存するファイルを入力してください (/root/.ssh/id_rsa): [Enter key]
パスフレーズを入力してください (パスフレーズがない場合は空です): [Enter キー]
同じパスフレーズをもう一度入力してください: [Enter キー]
あなたの ID は /root/.ssh/id_rsa.
に保存されました。公開キーは /root/.ssh/id_rsa.pub.
に保存されました。キーのフィンガープリントは次のとおりです:
43:0d:08:18:ec:9e:d6:1f:ea:5f:04:30:0f:66:26:41 root@dmz01
キーのランダムアート画像は次のとおりです:
--[RSA 2048]----
| oE O.. |
| o= =.o |
| . o . . |
| . |
| . o S |
| . . . |
| .o .. |
| . .. |
| ....
------------------「/root/.ssh」ディレクトリに入り、「authorized_keys」ファイルをコピーして生成し、次のコマンドを使用します。
cat id_rsa.pub >>authorized_keys結果は次のとおりです:
[root@inside01 .ssh]# ll
合計 12
-rw-r--r-- 1 ルート root 395 11 月 12 日 16:25 allowed_keys
-rw------ 1 ルート root 1675 11 月 12 日 16:24 id_rsa
-rw-r--r-- 1 ルート root 395 11 月 12 日 16:24 id_rsa.pub
4. 他のサーバーキーをコピーします
セクション 3 で集約サーバーの秘密キーを構成した後、dmz02、inside01、...、inside16 を含む 17 台のサーバーの秘密キーを構成する必要があります。方法は3章のコマンドと同じです。
他の 17 台のサーバーの秘密キーを設定した後、17 台のサーバーの秘密キーを集約サーバー dmz01 にコピーする必要があります。コピーコマンドは次のとおりです:
[root@inside01 .ssh]# ssh-copy-id -i dmz01
5. 集計キー ファイルをコピーします
集約されたキー ファイルを集約サーバーから他の 17 台のサーバーの「/root/.ssh」ディレクトリにコピーします。コマンドは次のとおりです:
[root@dmz01 .ssh]# scp allowed_keys dmz02:/root/.ssh/上記のように、秘密鍵ファイル「authorized_keys」の scp コピーを実行します。このプロセスにはパスワードの入力が必要です。[root@dmz01 .ssh]# scp allowed_keys inside01:/root/.ssh/
…
[root@dmz01 .ssh]# scp allowed_keys inside16:/root/.ssh/
root@inside16 のパスワード:
認証されたキー 100% 7104 6.9KB/秒 00:00
Ssh パスワード不要の認証:
[root@dmz01 .ssh]# ssh dmz02ホスト「dmz02 (10.141.68.179)」の信頼性を確立できません。
ECDSA キーのフィンガープリントは 22:49:b2:5c:7c:8f:73:56:89:29:8a:bd:56:49:74:66.
です。 接続を続けてもよろしいですか (はい/いいえ)? はい
警告: 「dmz02,10.141.68.179」(ECDSA) が既知のホストのリストに永続的に追加されました。
最終ログイン: 2016 年 11 月 12 日土曜日 17:19:19 から 10.141.93.186
上記の「ssh dmz02」からもわかるように、dmz02サーバーにsshログインする場合、パスワードを入力する必要はありません。ただし、dmz02 を dmz01 の「know hosts」リスト ファイルに追加する必要があるというプロンプトが表示されます。このようにすると、次回 ssh 経由で dmz02 にアクセスするときに、既知ホスト リストへの追加を求めるプロンプトが表示されなくなります。
6. know_hosts ファイルの生成
集約サーバーから他の 17 サーバーに順番に SSH 接続し、以前のパスワードなしの設定を実行します。パスワードを入力する必要はありませんが、既知のホスト リストに参加するためのプロンプトが表示されます。
注: 独自の dmz01 を know hosts ファイルに追加するには、「[root@dmz01.ssh]# ssh dmz01」と入力する必要もあります。
最終的に生成された know_hosts ファイルの内容は次のとおりです。
know_hosts ファイルの行数を表示します:
[root@dmz01 .ssh]# wc -l known_hosts
18 個の既知のホスト
ホストごとに 1 行が表示され、dmz01 が自分自身を含む 18 台のサーバーすべてを認識していることがわかります。
7. know_hosts ファイルをコピーします
セクション 6 の後、dmz01 の 18 台のサーバーの既知ホスト設定を生成し、dmz01 の /root/.ssh/know_hosts ファイル scp を他の 17 台のサーバーにコピーします。
SSH パスワード不要のログイン検証:
[root@dmz01 .ssh]# ssh inside10
最終ログイン: 2016 年 11 月 15 日火曜日 15:01:18 から 10.141.93.186
[root@inside10 ~]# ssh inside15
最終ログイン: 2016 年 11 月 12 日土曜日 17:52:29 から 10.141.93.186
[root@inside15 ~]# ssh dmz02
最終ログイン: 2016 年 11 月 12 日土曜日 20:05:59 から 10.141.93.186
[root@dmz02 ~]# ssh dmz01
最終ログイン: 2016 年 11 月 17 日木 23:56:05 から 218.10.89.246
[root@dmz01 ~]# ssh inside15
最終ログイン: 2016 年 11 月 18 日金曜日 00:23:54 から 10.141.114.152
Ssh パスワードなしのログイン シーケンス: dmz01àinside10àinside15àdmz02àdmz01àinside15。
8. 概要
この記事では主に次のコマンドについて説明します:
hostnamectl set-ホスト名 inside01
ssh-keygen -t rsa
ssh-コピー-id -i dmz01
今回の記事は以上です、今後とも当サイトをよろしくお願いいたします。
以上がLinux クラスターでパスワードなしの SSH アクセスを迅速に構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。