xshell连接虚拟机Connection failed

本文讲述了作者如何通过检查并解决sshd服务权限问题,最终成功使用xshell连接到虚拟机的过程,包括使用`systemctl`命令、修改/var/empty/sshd权限及设置root用户密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下来自博客:xshell连接虚拟机Connection failed - 金虹巴巴 - 博客园 (cnblogs.com)

一、问题描述:xshell连接不了虚拟机,出现错误提示:Could not connect to '192.168.1.100' (port 22): Connection failed.

二、查找错误原因:

1、登录虚拟机,打开终端,切换到root用户,输入systemctl start sshd.service看能否开启sshd服务,提示开启失败,输入systemctl status sshd.service查看错误详情,提示

failed to start openssh server daemon

2、输入sshd -t(很有用)测试,提示/var/empty/sshd权限过大

三、解决方法

根据提示修改目录权限:chmod -R 755 /var/empty/

再次登录就可以登录上了

我按上面方法试验后:

首先设置root密码,利用现有管理员帐户登陆Ubuntu,在终端执行命令:sudo passwd root,接着输入密码和root密码,重复密码。这样就有了可用的root用户。

su root切换到root用户。 

 

 然后就好了。

### Xshell 连接教程及常见问题解决方案 #### 1. 准备工作 为了确保能够顺利连接虚拟机中的 Linux 服务器,需确认几个基本条件。首先,要验证目标虚拟机已启动并正常运行[^1]。 #### 2. 配置网络设置 如果遇到无法建立 SSH 连接的问题,则可能是由于网络配置不当引起的。建议先尝试重启虚拟机内的网卡服务来解决问题;有时简单的操作就能恢复正常通信功能[^2]。 ```bash sudo systemctl restart network ``` 对于使用 VMware 或 VirtualBox 的用户来说,还需检查宿主机与客户操作系统之间的网络模式(桥接、NAT 等),以保证两者处于同一局域网内以便相互访问。 #### 3. 设置防火墙规则 某些情况下,默认启用的安全策略可能会阻止外部请求进入系统内部端口。因此需要适当调整 SELinux 和 iptables/firewalld 参数允许必要的流量通过: - 对于基于 RHEL/CentOS 发行版: ```bash sudo firewall-cmd --zone=public --add-port=22/tcp --permanent sudo firewall-cmd --reload ``` - 而 Debian/Ubuntu 用户可以执行如下命令开放 SSH 访问权限 ```bash sudo ufw allow ssh ``` 以上措施有助于排除因安全机制造成的障碍,从而提高成功的几率。 #### 4. 解决字符编码冲突 当面对像 MySQL 数据库这样的应用场景时,可能出现中文显示异常的现象。此时可通过修改 JDBC URL 中的参数指定合适的字符集编码方式,例如 `GBK` 编码格式可有效防止乱码现象的发生[^3]。 ```java String url = "jdbc:mysql://localhost:3306/Laptop?useUnicode=true&characterEncoding=GBK"; ``` #### 5. 常见错误排查指南 针对不同类型的报错信息采取针对性强的办法往往能更快定位根源所在。比如,“Connection refused”通常意味着目的地址不可达或者监听进程不存在;而“Host key verification failed.”则提示本地缓存了旧版本的身份认证密钥文件,这时就需要更新 `.ssh/known_hosts` 文件内容再试一次。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值