SSHキーを使用してリバースポート転送を介して2つのリモートサーバー間でrsyncを実行しようとしています。

SSHキーを使用してリバースポート転送を介して2つのリモートサーバー間でrsyncを実行しようとしています。

2つのサーバー間でrsyncを実行しようとしています。私の根拠は次の記事です。2つのリモコン間でファイルを同期する方法は?

私が欠けているのは、各サーバーにログインするためにキー(同じキー)が必要な場合(ssh経由)rsyncを促進する方法です。

これは私が得た最も近いものです:

ssh -i ~/path/to/pem/file.pem -R localhost:50000:SERVER2:22 ubuntu@SERVER1 'rsync -e "ssh -p 50000" -vur /home/ubuntu/test localhost:/home/ubuntu/test'

初期接続が正常に機能しているようですが、SERVER2のキーとユーザー名を指定する方法がわからないようです。

どんなアイデアがありますか?

ベストアンサー1

SSHエージェントを使用することをお勧めします。これにより、キーペアのみが必要になり、個人部分はワークステーションに保存されます。別のサーバーにコピーしたり(それ自体は悪い考え)、特定のサーバー用の追加の鍵ペアを作成する必要はありません。

SSHエージェントを起動する方法はいくつかあります。詳細を読むことができます。そこ。これは最も簡単です。

eval ($ssh-agent)

次に、エージェントにキーを追加します。

ssh-add /path/to/private.key

キーが保護されている場合は、パスワードを入力するように求められます。追加したら、メッセージを表示せずに公開セクションを持つサーバーに接続できます。

また、このサーバーから別のサーバーにSSH経由で接続できます。プロキシは、次の場合に追加のユーザーを認証します。プロキシ転送を許可するSSHサーバーオプションはデフォルトでyesに設定されています。

それからプロローグです:)

今あなたのイベントに戻ります。サーバー構成がポート転送を禁止しない限り、次の方法があります。

  1. プロキシを使用してSERVER2に接続できることを確認してください。

ssh ubuntu@SERVER1 'echo Hi from $(hostname)'

  1. SERVER1からSERVER2へのプロキシ転送が正常であることを確認してください。

ssh -t ubuntu@SERVER1 ssh SERVER2 'Hi from $(hostname)'

  1. ポート転送を介してのみ接続を開始

ssh -R localhost:50000:SERVER2:22 -Nv

対応する端末ウィンドウを開いたままにします。

  1. 新しい端末ウィンドウでSERVER1にログインし、そこからポートが要求どおりに転送されることを確認します。

[SERVER1]ssh -p 50000 localhost 'echo Hi from $(hostname)'

SERVER2のこんにちはが表示されます。

上記の手順4がすべて有効であれば、rsyncコマンドを実行できます。ただ省略してください。-i part

おすすめ記事