无需用户交互的 SCP 文件

无需用户交互的 SCP 文件

我打算将一些文件复制到整个 Linux 机器网络,但是当我尝试使用scp它时要求确认,我需要输入“yes”,然后我必须输入密码。

有没有什么方法可以在不输入“是”并提供密码的情况下执行此操作?

答案1

这里有两个交互。

  1. 首先 SSH 要求确认服务器身份。这是必要的,因为对手可能会冒充服务器,诱骗您登录并提供密码或其他机密数据。第一次连接到服务器时,您需要验证主机的身份。此后,SSH 会记住主机名和加密身份之间的关联。

  2. 一旦 SSH 确信它正在与目标服务器通信,您需要对您的用户帐户进行身份验证通过提供一些凭据在服务器上。如果您没有设置任何其他内容,系统会要求您输入密码。

为了服务器身份验证,最简单的解决办法就是连接服务器一次从该帐户。验证身份并输入“是”。此决定将被记录下来~/.ssh/known_hosts,您不会再次被询问。

除了主机名之外,您可能还会被询问 IP 地址。如果服务器使用动态 IP 地址,这会很烦人。由于服务器的 IP 地址已更改这一事实很少引起人们的兴趣,因此通过放入CheckHostIP no配置文件来禁用 IP 地址验证通常是无害的~/.ssh/config

为了用户认证,为了能够无人值守运行,生成一个没有密码的密钥对。在客户端计算机上,运行ssh-keygen并输入空密码。然后运行ssh-copy-id the-server.example.com将公钥复制到服务器(此时您需要输入密码,因为这是迄今为止服务器对您进行身份验证的唯一方法)。此后,SSH 将读取密钥文件,并且由于密钥文件没有密码,因此可以使用密钥进行身份验证,而无需任何人为干预。

答案2

是的。事实上,只需首先使用ssh-keygen和命令在两台通信计算机之间建立无密码 ssh 身份验证ssh-copy-id。你就可以走了。

按着这些次序

相关内容