我需要将文件从远程计算机复制到本地计算机,并且我需要自动化它。
我已经尝试过 SCP 命令并且它正在工作,但是,我无法自动化它要求本地计算机和远程计算机用户的密码的部分。
基于这篇文章我可以使用 ssh-keygen 和 ssh-copy-id 执行无密码 SSH 登录
按照那里写的所有说明进行操作后,我尝试使用它访问远程计算机
ssh [电子邮件受保护]
它有效,不再要求输入密码。但是当我尝试使用下面的命令从该机器复制文件时,
scp [email protected]:'/a/b/c.txt' [email protected]:'/b/c/'
它仍然要求输入本地计算机的密码,即 [电子邮件受保护]
我想知道我是否做错了什么?会是什么呢?命令格式有问题吗
顺便说一句,我正在使用 Centos,我打算使用 python 进行编码
我认为您可能有多个 ssh 密钥,并且仅将身份设置为 yes。如果是这样,请检查这个答案:https://askubuntu.com/a/999306/398861
如果您要复制到本地计算机,为什么不这样做
scp [email protected]:'/a/b/c.txt' /b/c/
?
我在一些具有类似设置的机器上尝试了您的线路,但没有被要求输入密码;相反,我收到了错误,但这可能是由于我们的配置差异造成的。我尝试了我的,它成功了。
关于您在远程计算机上的连接是否成功,您可以在那里尾随此文件:
tail -f /var/log/secure
如果您没有看到任何错误,您可以确定(好吧,永远不要说总是)您使用生成的键的布局正在工作。
在这种情况下,我打赌你不会看到任何错误。
编辑20240314
我在原来的答案中所说的仍然是正确的。但是,要使命令正常工作,您还需要使用 ssh-copy-id 将密钥复制到本地计算机。这会将您自己的密钥放入您的授权密钥文件中。如果您通过 [电子邮件受保护] 访问自己的计算机,则还需要在那里添加密钥。