因修改/etc/ssh权限导致的ssh不能连接异常解决方法

本文介绍了一个常见的SSH连接问题:“Read from socket failed: Connection reset by peer”。该问题是由于不当使用$sudo chmod 777 /etc/ -R命令引起的。文章提供了具体的解决步骤:切换到root用户,并执行#chmod 400 /etc/ssh/*命令,之后即可恢复正常连接。

现象:
$ssh XXX@192.168.5.21
出现以下问题
Read from socket failed: Connection reset by peer

起因;
$sudo chmod 777 /etc/  -R (千万不要做,这是一个误操作)
导致了上面的结果

解决方法,切到root:
#chmod 400 /etc/ssh/* 

在重新连接就可以了。

### 权限问题分析与解决 在 Linux 系统中,`/etc/ssh/sshd_config` 文件是 SSH 服务的核心配置文件,通常只有 root 用户或具有特定权限的用户才能对其进行修改。如果遇到权限问题无法访问或修改该文件,可能的原因包括文件权限设置不当、SELinux 或 AppArmor 的限制等。 以下是一些常见的解决方法: #### 1. 使用 `sudo` 提升权限 如果当前用户不是 root 用户,可以尝试使用 `sudo` 命令以超级用户权限编辑文件: ```bash sudo vim /etc/ssh/sshd_config ``` 此命令会提示输入密码,确保当前用户具有 sudo 权限[^1]。 #### 2. 修改文件权限 如果需要长期允许某个用户或组修改该文件,可以调整文件的权限设置。例如,将文件权限设置为允许特定用户组读写: ```bash sudo chown root:your_group /etc/ssh/sshd_config sudo chmod 640 /etc/ssh/sshd_config ``` 上述命令将文件的所有者设置为 root,用户组设置为 `your_group`,并赋予所有者读写权限,组内用户只读权限[^3]。 #### 3. 检查 SELinux 或 AppArmor 设置 某些系统启用了 SELinux 或 AppArmor,可能会限制对 `/etc/ssh/sshd_config` 的访问。可以通过以下命令检查和临时禁用 SELinux: ```bash getenforce setenforce 0 ``` 如果问题解决,可以考虑调整 SELinux 策略而非完全禁用[^2]。 #### 4. 确保文件未被只读挂载 有时文件系统可能被挂载为只读模式,导致无法修改任何文件。可以通过以下命令检查挂载状态: ```bash mount | grep 'on / ' ``` 如果发现 `/` 被标记为 `ro`(只读),可以尝试重新挂载为读写模式: ```bash sudo mount -o remount,rw / ``` #### 5. 验证 SSH 服务状态 在修改 `/etc/ssh/sshd_config` 文件后,必须重启 SSH 服务以使更改生效: ```bash sudo systemctl restart sshd ``` 如果服务未能正常启动,可能是配置文件存在语法错误。可以使用以下命令检查配置文件的有效性: ```bash sudo sshd -t ``` ### 注意事项 - 在修改 `/etc/ssh/sshd_config` 文件时,务必小心操作,避免引入错误配置导致 SSH 服务不可用。 - 如果不确定如何修改配置文件,建议备份原始文件: ```bash sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值