Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Azure VM中的SFTP RSA身份验证_Linux_Azure_Cygwin_Sftp_Azure Virtual Machine - Fatal编程技术网

Linux Azure VM中的SFTP RSA身份验证

Linux Azure VM中的SFTP RSA身份验证,linux,azure,cygwin,sftp,azure-virtual-machine,Linux,Azure,Cygwin,Sftp,Azure Virtual Machine,要求-使用带密钥的WinSCP从本地windows计算机连接SFTP服务器 技术-我有Azure VM(Windows 2012服务器R2),其中为SFTP安装了Cygwin64。 我想使用RSA身份验证(即使用密钥)连接SFTP服务器 我已经编辑了用于RSA身份验证的sshd_配置文件。在cygwin64文件夹中,我还创建了.ssh文件夹和授权密钥文件 使用putty从本地机器生成了公钥和私钥,我在授权密钥文件中输入了该公钥,但当我试图连接该私钥时,它会说“服务器拒绝了我们的密钥” 我已输入授

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

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

我已经编辑了用于RSA身份验证的sshd_配置文件。在cygwin64文件夹中,我还创建了.ssh文件夹和授权密钥文件

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

我已输入授权密钥文件,但在尝试连接时 对于私钥,它表示“服务器拒绝了我们的密钥”

如果您看到这种类型的消息,首先应该仔细检查服务器配置。常见错误包括在公钥上设置了错误的权限或所有权,或在服务器上设置了用户的主目录

也许您可以按照这些步骤设置CYGWIN使用私钥进行身份验证:
1.安装GYCWIN(OpenSSH和cygrunsrv)
2.configuresshd使用此命令
ssh主机配置-y

3.使用此命令启动SSHD服务
cygrunsrv--Start SSHD

4.将您的公钥添加到
授权密钥
(我们可以将公钥复制到此文件):

顺便说一下,如果你找不到这个目录,你可以使用
ssh keygen.exe
命令创建这个目录/home/user/.ssh,如果你找不到这个文件
授权密钥
,我们应该创建它,然后运行这个命令
chmod 600授权密钥

之后,我们可以使用其他Linux虚拟机来SSH或SFTP此虚拟机(我们应该在Azure NSG入站规则上打开端口22)。
如果您想使用winscp登录此VM,我们应该将私钥转换为
.ppk
。通过这种方式,我们可以使用此密钥登录此SFTP

注:
我们可以使用winscp将
.key
转换为
.ppk

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

更新
我们可以像这样添加OpenSSH和sftp:

我已输入授权密钥文件,但在尝试连接时 对于私钥,它表示“服务器拒绝了我们的密钥”

如果您看到这种类型的消息,首先应该仔细检查服务器配置。常见错误包括在公钥上设置了错误的权限或所有权,或在服务器上设置了用户的主目录

也许您可以按照这些步骤设置CYGWIN使用私钥进行身份验证:
1.安装GYCWIN(OpenSSH和cygrunsrv)
2.configuresshd使用此命令
ssh主机配置-y

3.使用此命令启动SSHD服务
cygrunsrv--Start SSHD

4.将您的公钥添加到
授权密钥
(我们可以将公钥复制到此文件):

顺便说一下,如果你找不到这个目录,你可以使用
ssh keygen.exe
命令创建这个目录/home/user/.ssh,如果你找不到这个文件
授权密钥
,我们应该创建它,然后运行这个命令
chmod 600授权密钥

之后,我们可以使用其他Linux虚拟机来SSH或SFTP此虚拟机(我们应该在Azure NSG入站规则上打开端口22)。
如果您想使用winscp登录此VM,我们应该将私钥转换为
.ppk
。通过这种方式,我们可以使用此密钥登录此SFTP

注:
我们可以使用winscp将
.key
转换为
.ppk

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

更新

我们可以像这样添加OpenSSH和sftp:

不,它仍然会从WinSCP中产生相同的问题“服务器拒绝我们的密钥”。我用600模式更改了授权密钥,但仍然不工作。您可以使用putty登录此vm吗使用此私钥实际上vm是Windows Server 2012。我正在这上面安装SFTP。我明白了,你是说你只安装cygrunsrv而不安装openssh?openssh和cygrunsrv(SFTP)提供了cygwin的所有功能。您安装了哪个版本的cygwin,是否将openssh添加到此虚拟机?或者你能在这个虚拟机上重新安装cygwin吗?不,它仍然会从WinSCP中产生同样的问题“服务器拒绝我们的密钥”。我用600模式更改了授权密钥,但仍然不工作。你能使用putty登录这个虚拟机吗?使用这个私钥实际上虚拟机是Windows Server 2012。我正在这上面安装SFTP。我明白了,你是说你只安装cygrunsrv而不安装openssh?openssh和cygrunsrv(SFTP)提供了cygwin的所有功能。您安装了哪个版本的cygwin,是否将openssh添加到此虚拟机?或者你能在这个虚拟机上重新安装cygwin吗?
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