首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何远程SSH到Windows内部的虚拟机?

如何远程SSH到Windows内部的虚拟机?

作者头像
marsggbo
发布2023-03-01 14:12:40
发布2023-03-01 14:12:40
1.9K0
举报

1. 背景

我学校有一台Windows电脑 (x@a.b.c.d),里面安装了一个Ubuntu虚拟机(用户名为y),虚拟机里连着VPN。并且虚拟机的22端口映射到了主机的22端口。通过这个VPN我可以访问另一个远程的服务器(z@e.f.g.h)用于炼丹。

我现在在家,无法直接访问远程服务器,只能把学校电脑作为跳板才可以。下面是示意图

2. 在Windows上安装OpenSSH并配置服务器

2.1 安装SSH Server

假如你在机器A上安装SSH,一般情况下只有客户端,也就是说你只能去ssh到其它远端机器。但是你如果想在机器B上ssh到机器A是不行的,因为机器A并没有SSH服务器(Server)。SSH Server安装方式如下

2.2 SSH Server配置

  1. 打开SSH Server

首先按下快捷键 Win + R,然后输入services.msc,之后会进入到windows的服务管理界面。往下滑你可以找到OpenSSH SSH Server选项,双击它后点击启动,并将启动类型选项改为自动

  1. 防火墙增加入站规则,添加22端口

你可以通过如下命令查看22端口是否成功监听

代码语言:javascript
复制
netstat -an | findstr :22
  1. 修改sshd_config文件 sshd_config路径一般在C:\ProgramData\ssh文件夹里,其中ProgramData是隐藏文件夹,你需要在文件管理器里设置显示隐藏文件夹后就能看到了。之后用管理员权限打开sshd_config文件,你需要修改两个地方:
  • 一个是把原本是注释状态的端口取消,即把#删掉即可
代码语言:javascript
复制
Port 22
  • 另一个则是把最后两行注释掉,如下。这个耽误了我最长时间,之间一直无法成功ssh,直到把这个做了之后就可以了。
代码语言:javascript
复制
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

如果你修改了上面提到的路径的sshd_config还是没用,你也可以试着把C:\Windows\System32\OpenSSH路径下的sshd_config_default仿照上面的方法修改一下。

开始SSH

假设你远程Windows的用户名是x,IP是a.b.c.d;虚拟机的用户名是y,并且你已经将虚拟机的22端口映射到了Windows的22端口,那么你可以直接通过如下方式就可以ssh到虚拟机了

代码语言:javascript
复制
ssh -J x@a.b.c.d,y@127.0.0.1 z@e.f.g.h

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 背景
  • 2. 在Windows上安装OpenSSH并配置服务器
    • 2.1 安装SSH Server
    • 2.2 SSH Server配置
  • 开始SSH
  • 参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档