要求 - 使用带密钥的WinSCP从本地Windows计算机连接SFTP服务器
技术 - 我有Azure VM(Windows 2012服务器R2),其中为SFTP安装了Cygwin64。 我想使用RSA身份验证连接SFTP服务器,即使用密钥。
我已经编辑了sshd_config文件以进行RSA身份验证。在cygwin64文件夹中,我还创建了.ssh文件夹,并在该Authorized_keys文件下。
从使用putty的本地计算机我已生成公钥和私钥以及我在授权密钥文件中输入的这个公钥,但当我尝试连接该私钥时,它说“服务器拒绝了我们的密钥”
答案 0 :(得分:2)
我已输入授权密钥文件,但是当我尝试连接时 使用该私钥,它说“服务器拒绝了我们的密钥”
如果您看到此类消息,您应该做的第一件事就是仔细检查您的服务器配置。常见错误包括公钥上的错误权限或所有权集或服务器上的用户主目录。
也许您可以按照这些步骤使用私钥设置CYGWIN身份验证:
1. 安装 GYCWIN(OpenSSH和cygrunsrv)
2. 配置 sshd使用此命令ssh-host-config -y
3. 使用此命令启动 SSHD服务cygrunsrv --start sshd
4.将公钥添加到authorized_keys
(我们可以将公钥复制到此文件中):
jason@jasonvm ~/.ssh
$ ls -a
. .. authorized_keys id_rsa id_rsa.pub id_rsa1 known_hosts
$ cat authorized_keys
ssh-rsa AAAAB3Nxxx.......xxxxzaAVbeVFw==
jason@jasonvm ~/.ssh
$ pwd
/home/jason/.ssh
顺便说一句,如果您无法找到此目录,您可以使用ssh-keygen.exe
命令创建此目录 / home / user / .ssh ,如果找不到此文件authorized_keys
,我们应该创建它,并运行此命令chmod 600 authorized_keys
此外,我们可以使用其他Linux VM来SSH或SFTP这个VM(我们应该在Azure NSG入站规则上打开端口22)。
如果要使用winscp登录此VM,我们应将私钥转换为.ppk
。通过这种方式,我们可以使用此密钥登录此SFTP。
对于测试,您可以尝试使用Putty使用您的私钥登录azure vm,以确保使用正确的私钥和公钥。