www. On IT Road .com
解决方法
在减少人工干预的情况下,可以将无密码操作添加到 cron 或者 schedule。
复制操作的各种方法包括 rsync、bacula 和带有 scp 的 keygen。
- 使用 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.
我们可以看到生成的密钥,如下所示,扩展名为 .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
- 生成公钥后,将.pub 文件作为authorized_keys 复制到用户home 下的.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
问题
如何在 Linux 中运行 scp 命令而不提示输入任何密码?
日期:2020-09-17 00:13:50 来源:oir作者:oir