サーバークラスター内の2つのノード間でパスワードのないログインを実装する方法に関する問題が発生しました。これで、次のIPアドレスを持つ10個のノードで構成されるサーバークラスタがあります。
192.168.0.1 # node1
192.168.0.2 # node2
...
192.168.0.10 # node10
これら3つのノードの私のユーザー名は、xyz
このノードのシステムと同じですUbuntu14.04
。
これは多くの場所で回答する必要がある標準的な質問のようですが、Googleを使用した検索では2つのノードソリューションのみが通知されます。たとえば、生成された公開鍵をファイルnode1
に渡し、残りのノードでパスワードのないログインを許可します。しかし、このアプローチをサーバークラスタの2つのノードに拡張するにはどうすればよいですか?各ノードで公開鍵を手動で生成し、各ノードの公開鍵を残りのノードにコピーする必要がありますか?一般的で便利な方法はありますか?authorized_keys
node2, ..., node10
node1
ベストアンサー1
クラスタ設定がある場合は、共有ファイルシステムが存在する可能性があります。その場合は、単にSSHキーをサーバー自体に追加するだけです。別のサーバーに接続すると、認証されたキーのリストで自分のキーを見つけます。その後、すべてのサーバーから任意のサーバーに接続できます。
異なるファイルシステムがある場合は、これを手動で実行する必要があります。このxyz
ユーザーとは異なるサーバー用にssh-copy-id
新しいSSHキーを生成できます。これはサーバーの数に応じたN²拡張と似ていますが、これは悪いことです。
SSHキーを生成してすべてのコンピュータにコピーできます/home/xyz/.ssh/id_rsa
。id_rsa.pub
次に、このキーをすべてのシステムに登録します。これで、同じSSHキーを使用してすべてのサーバーから別のサーバーにログインできます。
scp
これを展開するには、-loopを使用してfor
サーバーを繰り返すクイックスクリプトを作成します。