linux - Azure VM 中的 SFTP RSA 身份验证

标签 linux azure cygwin sftp azure-virtual-machine

要求 - 使用 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了。

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

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

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

关于linux - Azure VM 中的 SFTP RSA 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44188790/

相关文章:

ruby-on-rails - 使用 Cygwin 挂起的 Heroku 工具带登录

windows - 安装 cygwin : setup. ini 从 http ://mirrors. kernel.org 丢失

c++ - Netbeans 7.0编译器错误

linux - 远程发送shell脚本到linux机器

c++ - 如何设置 Makefile 以使用 Visual-Studio 风格的输出目录进行构建?

t-sql - TSQL : How do I move data between SQLServer instances?

sql-server - 将生产 Azure SQL 数据库中的数据与临时数据库同步,允许在第二秒内进行更改

c# - 将图像上传到容器时,Blob 存储触发器不会被触发,为什么?

linux - 如何使用正则表达式判断一个文件是否包含ISBN系列?

java - file.exists() 意外返回 false