在 Linux 中运行SCP时,如何不被密码提示中断
www. On IT Road .com

解决方法

在减少人工干预的情况下,可以将无密码操作添加到 cron 或者 schedule。
复制操作的各种方法包括 rsync、bacula 和带有 scp 的 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.

我们可以看到生成的密钥,如下所示,扩展名为 .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
  1. 生成公钥后,将.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