質問 :Linux でパスワードを要求せずに scp コマンドを実行する方法は?
手作業による介入を減らす場合は、パスワードなしの操作を cron またはスケジュールに追加できます。コピー操作のさまざまな方法には、scp を使用した rsync、bacula、および keygen が含まれます。
1. ssh-keygen を使用してキーを生成します 特定のユーザーとサーバーに対して。たとえば、これに従うことができます:
# ssh-keygen -t rsa -b 4096 -C "root@localhost" Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 33:4c:b1:a1:b0:f7:3a:85:0c:85:b9:6b:eb:c6:69:8b root@localhost The key's randomart image is: +--[ RSA 4096]----+ | .o. o | | o+ . + | | o.o o | | .+ = | | .o S | | o o o | | o oo | | .* . | | E+o. | +-----------------+
.pub を使用すると、以下のように生成されたキーを確認できます。 拡張子:
# ls -l .ssh/ total 8 -rw-------. 1 root root 3239 Aug 13 13:11 id_rsa -rw-r--r--. 1 root root 736 Aug 13 13:11 id_rsa.pub
2. 公開鍵が生成されたら、.pub ファイルを authorized_keys としてコピーします .ssh の下 宛先サーバーのユーザーのユーザー ホームの下のディレクトリ。完了したら、パスワードなしで接続する ssh を実行してみてください。
# cat .ssh/id_rsa.pub | ssh root@server2 'cat >> .ssh/authorized_keys'
# ssh root@server2
以下に示すように、scp を使用してファイルをコピーできるようになりました:
# scp test_file.txt root@server2:/tmp/ test_file.txt 100% 20 0.0KB/s 00:00