パスワードを要求せずに2つの異なるサーバーでscpコマンドを使用する方法は?

パスワードを要求せずに2つの異なるサーバーでscpコマンドを使用する方法は?

scpこのコマンドを使用して、パスワードを入力せずにあるサーバーから別のサーバーにファイルを転送しようとします。これを行うには、キーファイルを作成してそれを各サーバーの.sshフォルダーにコピーしましたが、コマンドを実行するときにscp別のサーバーのパスワードを入力する必要があります。

私はCloudwaysサーバーを使用しています。.sshファイルを編集することはできませんが、そのポータルを使用してキーを追加しますauthorized_keys

私は次のコマンドを使用しています:

scp -o StrictHostKeyChecking=no -rv /home/00000000.cloudwaysapps.com/fdbbgbgbgb/public_html/Test1/test.html [email protected]:/home/0000000.cloudwaysapps.com/bgbtrbgb/public_html/Test1

2つの異なるサーバー間の転送を自動化するにはどうすればよいですか?私もやってみましたが、ssh-keygenサーバーではありません。キーをローカルで生成し、両方のサーバーに手動で追加しました。このキーを使用すると、パスワードを入力しなくても両方のサーバーにログインできます。サーバー間でファイルを転送するときにのみパスワードを入力するように求められます。

なぜこれが起こるのか、そして最初のサーバーで2番目のサーバーのSSHキーをどのように構成するのかを説明できますか?

答え1

ローカルで鍵を生成して両方のサーバーに手動で追加したため、パスワードを入力しなくても両方のサーバーにログインでき、ファイルを転送するときにパスワードのみが提供されました。

ローカルシステムとリモートシステム間でファイルをコピーしたり、ローカルシステムからログインしたときに証明書ベースの認証を設定したり、すでに機能していることがわかります。 (少なくともsshパスワードは必要ないと説明しましたが、これはほぼ同じです。)

date >date.txt
scp date.txt remoteHostA:
scp date.txt remoteHostB:

しかし、今やっていることは、にログインしてからからにコピーすることですremoteHostA。今は顧客なので、顧客をそうする必要があります。remoteHostBremoteHostAremoteHostA

remoteHostA同様の方法を使用してSSHキーを生成し、ssh-keygen -t ed25519ローカルコンピュータに公開キーをインストールするのと同じ方法で、結果の公開キーを転送してインストールする必要があります。remoteHostB

または、ローカルシステムを介してremoteHostAファイルを転送できますが、remoteHostBこれを行うにはそのシステムにログインしてそこからコマンドを実行する必要があります。

scp -3v remoteHostA:date.txt remoteHostB:

-r(このフラグはファイルのディレクトリツリーをコピーする場合にのみ必要です。)

関連情報