クラスターを作成または参加する場合 RELIANOIDシステムは、安全な通信を確立するためにノード間で SSH キーを交換します。
この交換が失敗すると、ログに次のエラーが表示される場合があります。
(エラー) クラスター:: SSH キー ID の交換に失敗しました (エラー) webgui:: クラスターの有効化: SSH キー ID の交換に失敗しました
症状 #
クラスタの作成または同期が失敗する システム > クラスタ Web UI のセクション。
その システム > ログ > syslog (/var/log/syslog) には次のようなエラーが表示されます:
ssh-copy-id: エラー: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ エラー: @ 警告: リモート ホスト ID が変更されました。 @ エラー: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ エラー: 10.xyz のホスト キーが変更されたため、厳密なチェックを要求しました。 エラー: ホスト キーの検証に失敗しました。 (エラー) クラスター:: ホスト 10.xyz に ID キーをコピー中にエラーが発生しました (エラー) クラスター:: SSH キー ID の交換に失敗しました
これは、リモートホストキーが変更されたか、ローカルノードのSSHに競合するエントリがあることを示します。 known_hosts ファイルにソフトウェアを指定する必要があります。
原因となる #
エラーが発生する原因は次のとおりです:
- リモート クラスター ノードが再インストール、再デプロイされたか、SSH ホスト キーが再生成されました。
- ローカルノードには古いホストの指紋がまだ保存されている
/root/.ssh/known_hosts. - セキュリティ上の予防措置として、保存されたキーが新しいキーと一致しないため、SSH は接続を拒否します。
解像度 #
古いSSHホストキーのエントリを削除する #
エラーを報告しているノードで、次のコマンドを実行します。
ssh-keygen -f "/root/.ssh/known_hosts" -R "10.xyx"
交換する 10.xyx リモートノードのIPアドレスを指定します。このコマンドを、リモートノードのIPアドレスを含む両方のクラスタノードに適用します。
これにより、古い指紋が削除されます known_hosts.
クリーンアップを確認する #
コマンドはエントリが見つかり削除されたことを報告します。例:
# ホスト 10.xyx が見つかりました: 1行目 # ホスト 10.xyx が見つかりました: 2行目 # ホスト 10.xyx が見つかりました: 3行目 /root/.ssh/known_hosts が更新されました。元の内容は /root/.ssh/known_hosts.old として保持されます。
各ノードのRSAキーを削除します #
各ノードから、再生成する RSA キーを削除してください。
rm -f /root/.ssh/id_rsa*
レビュー ホスト.拒否 file #
ブロックされているホストがないか確認してください /etc/hosts.deny ファイル。以下のコマンドを実行すると空の出力が表示されます。
grep -v "^#" /etc/hosts.deny
応答が空でない場合は、ファイルを編集します /etc/hosts.deny リモート ホストに関連する IP アドレスを削除します。
クラスター サービスを再構築する #
Web UIセクションへ移動 システム > クラスタ
クラスター構成を再構築または再度有効にします。
SSH キー交換が再度試行され、今度は成功するはずです。
Additional Notes #
問題が引き続き発生する場合は、次の点を確認してください。
- ノードはSSH経由で相互にアクセスできます(
ssh root@<REMOTE IP>). - システム クロックは同期されています (NTP を使用)。
- ファイアウォール ルールはノード間のポート 22/TCP をブロックしません。
これらの手順を完了すると、SSH キー ID 交換失敗エラーなしでクラスターが正常に構築されるはずです。