要求 - 使用 WinSCP 和 key 从本地 Windows 计算机连接 SFTP 服务器
技术 - 我有 Azure VM(Windows 2012 服务器 R2),其中安装了用于 SFTP 的 Cygwin64。 我想使用 RSA 身份验证(即使用 key )连接 SFTP 服务器。
我已编辑 RSA 身份验证的 sshd_config 文件。在 cygwin64 文件夹中,我还创建了 .ssh 文件夹并在该 Authorized_keys 文件下。
使用腻子从本地计算机生成了公钥和私钥,并且我已在授权 key 文件中输入了该公钥,但是当我尝试使用该私钥连接时,它显示“服务器拒绝了我们的 key ”
最佳答案
I have entered in Authorized keys file but when I am trying to connect with that Private key it is saying "Server refused our key"
如果您看到此类消息,您应该做的第一件事就是仔细检查您的服务器配置。常见错误包括对服务器上的公钥或用户主目录设置错误的权限或所有权。
也许您可以按照以下步骤设置 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 600authorized_keys
>
之后,我们可以使用其他 Linux VM 对该 VM 进行 SSH 或 SFTP(我们应该在 Azure NSG 入站规则上打开端口 22)。
如果你想使用winscp登录这个虚拟机,我们应该将私钥转换为.ppk
。这样我们就可以使用这个 key 来登录这个SFTP了。
为了测试,您可以尝试使用 Putty 使用您的私钥登录 azure vm,以确保您使用的是正确的私钥和公钥。
关于linux - Azure VM 中的 SFTP RSA 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44188790/