ssh连接VitrualBox虚拟机

在Virtual Box里安装了Ubuntu 20.04虚拟机,打算在Windows上使用ssh连接,按照网上的教程,发现怎么都无法连接上虚拟机,报错: ssh_exchange_identification: read: Connection aborted 。经过排查,发现是Ubuntu20.04没有安装ssh-server(我在安装Ubuntu系统时为了节省时间,跳过了安装软件的步骤,可能是因为这个)。

1 ssh与sshd

  • openssh (ssh = secure shell)

在主机中开启了openssh服务,就对外开放了远程连接的接口。sshd是openssh的服务端;ssh是openssh的客户端。
ssh—————>sshd
client       server

2 查看是否安装openssh

Ubuntu默认安装了openssh,但是如果在系统安装过程中选择了最小安装和跳过了软件安装的过程,可能会出现像我这种情况ssh未安装(成功)的情况。
使用dpkg -l |grep ssh 查看ssh安装情况。如果下面这两个都有,就没有问题。

openssh-client  
openssh-server   

我安装的Ubuntu系统只有client而没有server,所以在Windows下通过ssh连接Ubuntu失败。这时,使用sudo apt install ssh安装ssh即可。安装后再使用dpkg -l |grep ssh查看是否安装成功。

3 查看ssh与sshd服务是否开启

使用命令查看ssh与sshd服务是否开启

ps -e | grep ssh
  • 如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start 或者
    service sshd start 启动服务,如果看到sshd那说明ssh-server已经启动了。

  • ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服务:sudo /etc/init.d/ssh restart

4 VirtualBox的网络设置

虚拟机的网络有两种选择:网络地址转换(NAT) 或者 桥接网卡 。这两种网络模式任选其一即可。

桥接模式下,共享本地主机网卡,在同一个局域网之下,直接获取Ip地址就可以进行连接了。
Nat模式下,获取的Ip与本地主机不是同一个网段,需要做端口转发,才能本地ssh连接虚拟机。

这里使用网络地址转换(NAT) 模式: 在VirtualBox中点击Ubuntu20.04的虚拟机 设置 - 网络 - 网卡1 - 连接方式 -》选择 网络地址转换(NAT) - 高级 - 端口转发 -》新建规则:名称ssh,协议TCP,主机端口22,子系统端口22,其他空。 如下图:

在这里插入图片描述

22是ssh默认使用的端口,如果主机端口设置其他端口如8022,则在进行ssh连接时需要加上ssh -p 8022 的参数。
如果子系统端口设置其他端口,则需要在子系统中修改/etc/ssh/sshd_config 配置里的端口。

5 建立ssh连接

在主机Windows的命令行中,使用ssh <username>@localhost就可以连接到Ubuntu虚拟机了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值