[email protected]'s password: Permission denied, please try again.
时间: 2025-05-26 10:23:06 浏览: 20
### 解决 SSH 登录时权限被拒绝的问题
当遇到 SSH 登录权限被拒绝 (`Permission denied`) 的错误时,可能是由于多种原因引起的。以下是详细的排查和解决方案:
#### 1. **检查 SSH 配置文件**
SSH 服务的配置文件位于 `/etc/ssh/sshd_config`。需要确认以下几个参数是否正确设置:
- `PermitRootLogin`: 如果希望允许 root 用户登录,应将其设置为 `yes` 或 `without-password`(推荐)。如果设置为 `no`,则无法通过 root 用户登录。
```bash
sed 's#PermitRootLogin no#PermitRootLogin yes#' /etc/ssh/sshd_config | grep PermitRootLogin
```
此命令用于临时替换配置中的值以测试效果[^1]。永久更改需要编辑配置文件并重启 SSH 服务:
```bash
sudo nano /etc/ssh/sshd_config
sudo systemctl restart sshd
```
#### 2. **验证公钥认证**
如果使用的是基于密钥的身份验证而非密码登录,需确保以下几点:
- `.ssh/authorized_keys` 文件中包含客户端的公钥。
- `.ssh` 目录及其子文件的权限正确无误(如前所述)。
```bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
```
#### 3. **处理主机身份验证警告**
首次连接到新主机时,可能会收到类似以下的消息:
```plaintext
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:yFjJtQviMKIarBcVssu8hwxyzoOgg5jrOICm8Eu1t8E.
Are you sure you want to continue connecting (yes/no)?
```
此时必须回答 `yes` 才能继续连接[^2]。如果再次出现相同提示,可能是因为主机密钥发生了变化或缓存损坏。
#### 4. **排除网络冲突问题**
在虚拟化环境中,IP 地址冲突是一个常见问题。例如,本地计算机与虚拟机共享相同的 IP 地址(如 `192.168.189.1`),会导致网络不可达[^3]。建议采取以下措施:
- 修改虚拟机的网络适配器设置,改为桥接模式或其他独立网段。
- 使用唯一的静态 IP 地址分配给每台设备。
#### 5. **调试日志分析**
开启 SSH 日志记录功能可以帮助定位具体问题所在。可以在 `/etc/ssh/sshd_config` 中增加以下行:
```bash
LogLevel DEBUG3
```
随后重新启动 SSH 服务,并查看系统日志获取更多信息:
```bash
sudo journalctl -xe | grep ssh
```
---
###
阅读全文
相关推荐













