Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
如何通过SSH连接到Windows Linux子系统上的Microsoft Azure虚拟机?_Azure_Ssh_Windows Subsystem For Linux - Fatal编程技术网

如何通过SSH连接到Windows Linux子系统上的Microsoft Azure虚拟机?

如何通过SSH连接到Windows Linux子系统上的Microsoft Azure虚拟机?,azure,ssh,windows-subsystem-for-linux,Azure,Ssh,Windows Subsystem For Linux,我创建了一个以Windows10为映像的Microsoft Azure虚拟机。我允许它有一个SSH连接。Microsoft Azure门户上的连接显示“允许网络连接”。但是,当我尝试在Windows Linux子系统上使用以下命令连接它时:ssh-I@它会显示ssh:connect to host port 22:Resource temporary unavailable。为什么会这样 我还想知道Microsoft Azure上关于创建私钥然后拥有私钥路径的说明。如何创建私钥并为其创建路径?您

我创建了一个以Windows10为映像的Microsoft Azure虚拟机。我允许它有一个SSH连接。Microsoft Azure门户上的连接显示“允许网络连接”。但是,当我尝试在Windows Linux子系统上使用以下命令连接它时:
ssh-I@
它会显示
ssh:connect to host port 22:Resource temporary unavailable
。为什么会这样

我还想知道Microsoft Azure上关于创建私钥然后拥有私钥路径的说明。如何创建私钥并为其创建路径?

您可以查看,其中列出了几个问题:

  • 防火墙
    • 该域名已被移动到云端,我需要使用直接IP地址而不是域名
    • 我收到“资源暂时不可用”错误,因为我的子网没有到Internet网关的路由
    • 我只是遇到了这个问题,因为我在服务器上安装了Nginx,默认情况下它会阻止SSH。您必须
      sudoufw允许ssh
注意:如在“”中所述,您从WSL连接到Azure

这意味着您将在Azure远程服务器的SSH字段中输入公钥:

在您的电脑上,您可以通过以下方式生成公钥/私钥:

ssh-keygen -P "" -t rsa -f azure
这将在
%USERPROFILE%\.ssh
中创建
azure
azure.pub
文件。
将第二个(公钥)的内容复制到Azure设置

根据您的Windows 10版本,您可能需要安装,其中包括
ssh-keygen.exe

C:\path\to\Git\usr\bin\ssh-keygen.exe
但是,在您的情况下,在WSL bash会话中这样做会更好,特别是如果其余部分是在同一会话中完成的。
文件将位于
~/.ssh
$HOME/.ssh


有关Windows 10虚拟机,请参见
那么就不需要SSH了

连接到虚拟机并登录:
  • 在集线器菜单上,单击虚拟机

  • 从列表中选择虚拟机

  • 在虚拟机刀片服务器上,单击连接。这将创建并下载远程桌面协议文件(.rdp文件)以连接到您的计算机。打开此文件以连接到VM

  • 您将收到一条警告,.rdp来自未知发布者。这是一条正常警告。在“远程桌面”窗口中,单击“连接”继续

  • 在Windows安全窗口中,键入创建VM时输入的用户名和密码。用户名输入为vmname\username,然后单击“确定”
  • 您将收到无法验证远程计算机身份的警告。这是一个正常的警告。单击“是”验证虚拟机的标识并完成登录
  • 您的机器已经准备就绪,您可以像使用任何其他机器或服务器一样使用它


    谢谢你的链接。我尝试了那里给出的解决方案,但是,错误仍然出现。我尝试在Windows防火墙上创建一个新的出站规则,并执行了上面的
    sudo
    命令。
    sudo
    命令给出一个错误:
    [sudo]用户密码:WARN:initcaps[Errno 2]iptables v1.6.1:无法初始化iptables表'filter':表不存在(是否需要insmod?)。可能iptables或内核需要升级。
    @user12055579您是如何创建SSH公钥/私钥的?您是否在Azure端注册了公钥?我没有创建SSH公钥或私钥。在设置虚拟机时,它没有给我这个选项。如何在Azure门户中设置密钥?@user12055579您是否正在尝试从Azure连接到您的PC(WSL会话)?@user12055579通常,您是从PC连接到Azure的: