パスワードを指定せずにサーバーからファイルをアップロードおよびダウンロードする

パスワードを指定せずにサーバーからファイルをアップロードおよびダウンロードする

cronジョブを使用してサーバーからファイルをダウンロードしたいので、キーワードを介してパスワードを入力せずにscp コマンドを使用する必要があります。

どうすればいいですか?

ベストアンサー1

最初のステップは、コピーされたコンピュータに秘密鍵と秘密鍵のペアを作成することです。

ssh-keygen

デフォルト値をそのまま使用してください。パスワードは入力しなくても使用できます。時間がかかる場合があります。

2 番目のステップでは、鍵の生成が完了した後、次のコマンドを使用して公開鍵をサーバーにコピーします。

ssh-copy-id username@server

適切なusernameパスワードserverを使用するにはパスワードが必要ですusername。パスワードがない場合は、usernameルートアカウントを介して公開鍵を含むファイルをコピーすることができますが、そのアカウントのパスワードを一時的に作成して使用する方がはるかに簡単です。ssh-copy-id

ステップ3:次のコマンドを使用して、インストールされた公開鍵が有効であることをテストします。ssh username@serverまたはscp somefile username@server:/var/tmp

ステップ4:crontab -eクライアントコンピュータにcron job()を追加します。

15 23 * * * scp username@server:/path/on/server/downloadfile /local/destination
17 23 * * * scp /local/source/somefile username@server:/path/on/server/uploaddirectory

/path/on/server/downloadfile毎晩11:15にサーバーからファイルをコピーし、2分後にアップロードを開始します。/local/source/somefile

考慮すべき事項:

  • コピーしているクライアントシステムへのアクセスセキュリティと保護されていない秘密鍵がある場所に応じて、アカウントを許可および許可しないようにusernameアカウントscpを変更することを検討する必要がありますssh
  • 同じファイルをコピーして内容がほとんど変更された場合(たとえば、完全に書き換えるのではなく追加)、rsync上記のSSHキーペアを使用する方が効率的です。

おすすめ記事