
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に設定されています。
それからプロローグです:)
今あなたのイベントに戻ります。サーバー構成がポート転送を禁止しない限り、次の方法があります。
- プロキシを使用してSERVER2に接続できることを確認してください。
ssh ubuntu@SERVER1 'echo Hi from $(hostname)'
- SERVER1からSERVER2へのプロキシ転送が正常であることを確認してください。
ssh -t ubuntu@SERVER1 ssh SERVER2 'Hi from $(hostname)'
- ポート転送を介してのみ接続を開始
ssh -R localhost:50000:SERVER2:22 -Nv
対応する端末ウィンドウを開いたままにします。
- 新しい端末ウィンドウでSERVER1にログインし、そこからポートが要求どおりに転送されることを確認します。
[SERVER1]ssh -p 50000 localhost 'echo Hi from $(hostname)'
SERVER2のこんにちはが表示されます。
上記の手順4がすべて有効であれば、rsyncコマンドを実行できます。ただ省略してください。-i part
答え2
3つのステップ:
すべてが接続された
~/.ssh/config
オンを作成します。たとえば、次のようになります。SERVER1
SERVER2
Host SERVER2 Port 50000 User user2 Hostname localhost IdentityFile ~/path/to/pem/file.pem
SERVER2
パラメータなしでホストに接続してみてください(SERVER1
ポート転送を開始した後から)。ssh SERVER2 # works?
そうでない場合は、それを追加して
-vvv
何が間違っているかを調べてください。rsync コマンドを実行します。
ssh -i ~/path/to/pem/file.pem -R localhost:50000:SERVER2:22 ubuntu@SERVER1 \ 'rsync -vur /home/ubuntu/test SERVER2:/home/ubuntu/test'
この方法で実行するには、認証キーが必要ですSERVER1
。コンピュータから秘密鍵をコピーするよりも新しい鍵を作成する方が良いです。