我学校有一台Windows电脑 (x@a.b.c.d
),里面安装了一个Ubuntu虚拟机(用户名为y
),虚拟机里连着VPN。并且虚拟机的22端口映射到了主机的22端口。通过这个VPN我可以访问另一个远程的服务器(z@e.f.g.h
)用于炼丹。
我现在在家,无法直接访问远程服务器,只能把学校电脑作为跳板才可以。下面是示意图
假如你在机器A上安装SSH,一般情况下只有客户端,也就是说你只能去ssh到其它远端机器。但是你如果想在机器B上ssh到机器A是不行的,因为机器A并没有SSH服务器(Server)。SSH Server安装方式如下
首先按下快捷键 Win + R
,然后输入services.msc
,之后会进入到windows的服务管理界面。往下滑你可以找到OpenSSH SSH Server选项,双击它后点击启动
,并将启动类型选项改为自动
。
你可以通过如下命令查看22端口是否成功监听
netstat -an | findstr :22
sshd_config
文件
sshd_config
路径一般在C:\ProgramData\ssh
文件夹里,其中ProgramData
是隐藏文件夹,你需要在文件管理器里设置显示隐藏文件夹后就能看到了。之后用管理员权限打开sshd_config
文件,你需要修改两个地方:Port 22
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
如果你修改了上面提到的路径的sshd_config
还是没用,你也可以试着把C:\Windows\System32\OpenSSH
路径下的sshd_config_default
仿照上面的方法修改一下。
假设你远程Windows的用户名是x,IP是a.b.c.d;虚拟机的用户名是y,并且你已经将虚拟机的22端口映射到了Windows的22端口,那么你可以直接通过如下方式就可以ssh到虚拟机了
ssh -J x@a.b.c.d,y@127.0.0.1 z@e.f.g.h