问题描述
我正在尝试使用WinSCP自动执行备份过程。我正在尝试设置WinSCP脚本,但是SSH身份验证遇到了麻烦。
我非常简单的脚本是这样:
# Connect to SFTP server using a password
open sftp://myusername:mypw@mywebspace.com/ -hostkey="ssh-rsa 2048 xxxxxxxxxxx...="
# Upload file
put C:\pic.jpg /backup/
# Exit WinSCP
exit
我遇到麻烦的部分是-hostkey
开关。我使用PuTTYgen生成了一个密钥,并将其保存在我的网站空间中。但是我不知道该在脚本中添加什么。我尝试执行的所有操作在运行脚本时似乎都显示“身份验证失败” 。
我应该在脚本中输入哪个?到底是什么样的?
我很感谢所有有用的建议,因为我是新手。
解决方法
主机密钥是SSH服务器的公共密钥。它与为验证服务器而生成的密钥对无关。 -hostkey
switch的内容是服务器公钥的指纹–只需遵循交换机说明文件即可。您可以使用它来验证服务器身份,从而避免使用MITM attacks。
请参阅WinSCP常见问题解答Where do I get SSH host key fingerprint to authorize the server?。
当您似乎进入身份验证阶段(“身份验证失败” )时,您面临的直接问题不是主机密钥。验证仅在验证主机密钥之后才发生。您似乎在-hostkey
开关上输入了错误的值,但是主机密钥已经过验证-这意味着无论如何您都已将主机密钥缓存在注册表中。如果您在身份验证方面遇到问题,请首先确保您可以以任何方式登录SSH服务器(例如从WinSCP GUI)。然后才尝试使过程自动化。