XShell5连接Ubuntu虚拟机

本文介绍了解决XShell无法连接虚拟机的问题步骤。首先需要确保虚拟机已安装并启动SSH服务,接着修改SSH配置文件允许root远程登录。通过这些步骤可以有效解决连接失败的问题。

使用这种方式连接的时候始终连接不上虚拟机,总是会提示Could not connect to


在网上找了半天的资料才发现是因为我的虚拟机没有安装ssh服务导致的

要解决这个问题: 
首先要安装了openssh-server,如果没有安装,则通过以下命令安装: 
sudo apt-get install openssh-server 
之后通过以下命令查看SSH是否启动: 
ps -e | grep ssh 
如果只有ssh-agent表示还没启动,需要 
/etc/init.d/ssh start。 


完成上述这些操作后,再次使用XShell连接虚拟机,这时又弹出这个

54d223f50001337e04370395.jpg

然后XShell虚拟机的界面出现


出现这种情况原因一般是ssh不允许root账户远程登录

解决办法是:修改SSH的配置文件/etc/ssh/sshd_config

修改 vim /etc/ssh/sshd_config
找到# Authentication:
LoginGraceTime 120
PermitRootLogin without passwd
StrictModes yes
改成
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

但是前提是你得用root账户登录才能修改,不然就会显示'readonly' option is set (add ! to override)

使用su - root 登录root账户,再进行修改

如果root用户没有配置好,就使用sudo passwd root 根据提示输入密码,然后再登录进行操作

修改完成后:


首先按ESC键回到命令模式

vi保存文件有不同的选项,对应于不同的命令,你可以从下面的命令中选择一个需要的;

  • :w 保存文件但不退出vi

  • :w file 将修改另外保存到file中,不退出vi

  • :w! 强制保存,不退出vi

  • :wq 保存文件并退出vi

  • :wq! 强制保存文件,并退出vi

  • :q 不保存文件,退出vi

  • :q!不保存文件,强制退出vi

  • :e! 放弃所有修改


最后再使用XShell登录虚拟机就OK了




浮生一场梦!!!


### XShell 连接 Ubuntu 虚拟机失败的原因分析 XShell 无法连接到 VirtualBox 中运行的 Ubuntu 虚拟机可能由多种原因引起,以下是常见的几个方面: 1. **SSH 服务未正常启动**:即使已经安装了 `openssh-server`,但如果 SSH 服务未正确启动,则可能导致连接失败[^3]。 2. **防火墙设置问题**:Ubuntu 的防火墙可能会阻止外部访问,默认情况下某些端口可能是关闭状态[^4]。 3. **网络适配器配置不当**:VirtualBox 的网络模式(NAT、桥接、仅主机等)会影响虚拟机与宿主机之间的通信[^1]。 4. **SSHD 配置文件错误**:如果没有正确配置 `/etc/ssh/sshd_config` 文件中的参数,也可能导致连接被拒绝[^2]。 --- ### 解决方案 #### 1. 确认 SSH 服务已启用并正在运行 可以通过以下命令确认 SSH 服务的状态: ```bash sudo systemctl status ssh ``` 如果服务未运行,可以尝试重新启动它: ```bash sudo systemctl restart ssh ``` #### 2. 修改 SSHD 配置文件 编辑 `/etc/ssh/sshd_config` 文件以确保允许远程连接: ```bash sudo nano /etc/ssh/sshd_config ``` 修改或检查以下几项: - 将 `PermitRootLogin` 设置为 `yes` 或 `prohibit-password`(推荐更安全的方式)。 - 确保 `PasswordAuthentication yes` 已开启(如果是密码登录方式)。 完成修改后保存退出,并重启 SSH 服务: ```bash sudo systemctl restart ssh ``` #### 3. 检查防火墙规则 使用以下命令查看当前防火墙状态以及开放的端口: ```bash sudo ufw status ``` 如果发现 22 端口未打开,执行以下操作来放行该端口: ```bash sudo ufw allow 22/tcp sudo ufw reload ``` #### 4. 验证 IP 地址和网络连通性 在 Ubuntu 终端中获取虚拟机的 IP 地址: ```bash ip addr show ``` 或者使用旧版命令: ```bash ifconfig ``` 记录下对应的 IPv4 地址。接着测试从 Windows 主机能否 ping 通此 IP 地址: ```cmd ping <Ubuntu_IP> ``` 如果无法 ping 通,需调整 VirtualBox 的网络适配器设置为“桥接模式”,以便虚拟机能直接接入局域网。 #### 5. 测试本地连接Ubuntu 上先验证是否能通过 localhost 登录 SSH: ```bash ssh username@localhost ``` 如果成功说明 SSH 功能正常;反之则需要排查上述步骤中的问题。 #### 6. 使用 XShell 进行连接 当一切准备就绪之后,在 XShell 新建会话时输入正确的用户名、IP 和端口号(通常是 22)。点击连接按钮即可建立远程桌面环境下的 Linux 控制台界面。 --- ### 注意事项 - 如果仍然存在问题,请仔细核对每一步骤是否有遗漏之处。 - 对于安全性较高的生产环境中不建议长期保持 root 用户可直接登陆权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值