零、写在前面
因为项目需要尝试了一下这种操作,因为这种需求很奇怪所以网络上并没有相关资料,不断地尝试终于成功了,特此记录。
明确环境:答主有一台windows10的电脑作为宿主机,安装了VMware Workstation Pro虚拟机软件,里面有一个ubuntu20.04的虚拟机,尝试ubuntu虚拟机内使用ssh连接win10宿主机。
win10主机,作为SSH Server。
ubuntu20.04虚拟机,作为SSH Client。
一、虚拟机SSH Client服务
ubuntu20.04 默认安装ssh client服务,请在命令行输入ssh验证。
理论上window系统和linux系统都是默认有ssh client服务的,没有的同学请看下面教程或访问SSH的安装及使用
Ubuntu缺省已经安装了ssh client,没有则执行以下命令安装
# sudo apt-get install ssh
或者
# sudo apt-get install openssh-client
二、宿主机SSH Server服务
开启windows10的SSH Server的服务略显麻烦,好在这个有教程Windows10开启ssh服务器功能。
使用PowerShell安装OpenSSH
要使用PowerShell安装OpenSSH前,请首先以管理员身份启动PowerShell.
-
在powershell中输入:
> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
此时powershell应该会显示可返回的结果:
Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent
-
分别输入以下命令安装ssh服务器端:
> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
此时powershell会显示如下返回结果:
Path : Online : True RestartNeeded : False
初始化ssh服务器
- 仍然以管理员身份启动powershell,输入以下命令:
初始化完成后,电脑上就已经启用了ssh服务器了> Start-Service sshd 或 > net start sshd
# 以下命令可选,但是建议启用: > Set-Service -Name sshd -StartupType 'Automatic' > Get-NetFirewallRule -Name *ssh*
卸载和关闭SSH
- 关闭SSH服务
> net stop sshd
- 卸载SSH Server
> Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
三、检查网络连接
- 确定VMware是通过NAT模式与宿主机连接。
- 获得宿主机的IP地址。
在win10中打开命令行窗口,使用ipconfig查看本机ip:
本机IP为10.21.0.186
虚拟网卡IP为192.168.95.1
注意此时有两个IP地址,通过这两个IP地址是都可以SSH连接win10宿主机的,具体原因可以看下图VMware NAT模式网络模型和原文链接:VMwVMware虚拟机的三种网络模型
- 检查网络是否互通
在ubuntu中使用ping命令检查网络是否互通
# ping 10.21.0.186 -c 4
收到如下回应代表网络互通
ping 192.168.95.1是无法成功的,但是可以成功ssh连接。答主不确定这个问题的原因,可能是因为192.168.95.1是虚拟网卡所以不支持ICMP之类的。
四、宿主机账号和密码
获取宿主机也即win10的账号密码是一个当初令答主头疼的事情,因为平常使用根本不知道账号是啥,锁屏界面也是使用PIN码,最终查询一些资料终于搞定。这里只给出答主登录类型(使用Microsoft账户登录)的解决方法,其他类型可以自行查阅我给出的资料链接:对Win10中“用户名”的一些疑问
我在激活中选择使用微软账户,则系统会直接放弃本地用户,通过微软账户登录,这时电脑的用户名和登录密码会自动同步为微软账户的用户名和密码。
具体的Windows里的用户名请按Win+R, 输入 netplwiz,点击属性查看一下。
此时红框中的DELL就是用户名。密码的话则为Microsoft账户的密码,如果忘记可以登录Microsoft官网验证和更改。
在这里使用"改用本地账户登录"也可以看到用户名,或者直接改为本地账户,设置用户名和密码
五、最后一步:林肯死大头
此时就可以通过SSH连接win10主机了,记得win10上SSH Server的服务是开启的哦~
在ubuntu20.04虚拟机上连接win10主机
# ssh DELL@10.21.0.186
或者
连接成功了!!