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
。今は顧客なので、顧客をそうする必要があります。remoteHostB
remoteHostA
remoteHostA
remoteHostA
同様の方法を使用してSSHキーを生成し、ssh-keygen -t ed25519
ローカルコンピュータに公開キーをインストールするのと同じ方法で、結果の公開キーを転送してインストールする必要があります。remoteHostB
または、ローカルシステムを介してremoteHostA
ファイルを転送できますが、remoteHostB
これを行うにはそのシステムにログインしてそこからコマンドを実行する必要があります。
scp -3v remoteHostA:date.txt remoteHostB:
-r
(このフラグはファイルのディレクトリツリーをコピーする場合にのみ必要です。)