Azure VM中的SFTP RSA身份验证

时间:2017-05-25 19:53:26

标签: linux azure cygwin sftp azure-virtual-machine

要求 - 使用带密钥的WinSCP从本地Windows计算机连接SFTP服务器

技术 - 我有Azure VM(Windows 2012服务器R2),其中为SFTP安装了Cygwin64。 我想使用RSA身份验证连接SFTP服务器,即使用密钥。

我已经编辑了sshd_config文件以进行RSA身份验证。在cygwin64文件夹中,我还创建了.ssh文件夹,并在该Authorized_keys文件下。

从使用putty的本地计算机我已生成公钥和私钥以及我在授权密钥文件中输入的这个公钥,但当我尝试连接该私钥时,它说“服务器拒绝了我们的密钥”

1 个答案:

答案 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。

注意:
我们可以使用winscp将.key转换为.ppkenter image description here

对于测试,您可以尝试使用Putty使用您的私钥登录azure vm,以确保使用正确的私钥和公钥。

<强>更新
我们可以像这样添加开放的ssh和sftp:enter image description here enter image description here enter image description here