WinSCP脚本中的主机密钥是什么?

问题描述

我正在尝试使用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生成一个密钥,并将其保存在我的网站空间中。但是我不知道该在脚本中添加什么。我尝试执行的所有操作在运行脚本时似乎都显示“身份验证失败”

这是我在PuTTYgen中得到的:

enter image description here

我应该在脚本中输入哪个?到底是什么样的?

我很感谢所有有用的建议,因为我是新手。

解决方法

主机密钥是SSH服务器的公共密钥。它与为验证服务器而生成的密钥对无关。 -hostkey switch的内容是服务器公钥的指纹–只需遵循交换机说明文件即可。您可以使用它来验证服务器身份,从而避免使用MITM attacks

请参阅WinSCP常见问题解答Where do I get SSH host key fingerprint to authorize the server?

当您似乎进入身份验证阶段(“身份验证失败” )时,您面临的直接问题不是主机密钥。验证仅在验证主机密钥之后才发生。您似乎在-hostkey开关上输入了错误的值,但是主机密钥已经过验证-这意味着无论如何您都已将主机密钥缓存在注册表中。如果您在身份验证方面遇到问题,请首先确保您可以以任何方式登录SSH服务器(例如从WinSCP GUI)。然后才尝试使过程自动化。

另请参阅Understanding SSH key pairs