Permission denied (publickey,password).
时间: 2023-09-30 21:05:52 浏览: 74
这个错误通常表示 SSH 连接失败。可能原因有:
1. 没有正确配置 SSH 密钥。你需要确保你使用的 SSH 密钥是正确的,并且已经添加到了服务器的授权列表中。
2. 服务器拒绝连接。这可能是因为你的 IP 地址被服务器列入了黑名单,或者你尝试连接的用户账户被禁用。
3. 服务器未正确配置。有时候,服务器可能没有正确配置 SSH 服务,导致你无法连接。这时候你需要联系服务器管理员。
你可以尝试使用 `ssh -v` 命令来获取更详细的错误信息,帮助你解决问题。
相关问题
Permission denied, please try again. Permission denied, please try again. root@localhost: Permission denied (publickey,password).
### 解决方案:SSH 登录时遇到的 `Permission denied (publickey,password)` 问题
此问题通常由多种原因引起,包括但不限于配置文件错误、用户权限不足或未正确设置密钥认证。以下是详细的排查与解决方法:
---
#### 1. **检查 SSH 配置文件**
在服务器端,确保 `/etc/ssh/sshd_config` 文件中的相关参数已被正确配置。
- **允许 Root 用户登录**
修改以下参数以允许 Root 用户通过密码方式进行登录:
```plaintext
PermitRootLogin yes
```
如果仅希望通过密钥认证而非密码登录,则可以改为:
```plaintext
PermitRootLogin prohibit-password
```
- **禁用公钥认证(临时测试)**
若怀疑是公钥认证失败导致的问题,可暂时禁用它来确认具体原因:
```plaintext
PubkeyAuthentication no
```
- **启用密码认证**
确保密码认证功能处于开启状态:
```plaintext
PasswordAuthentication yes
```
- **重启 SSH 服务**
完成修改后记得重启 SSH 服务以使更改生效:
```bash
sudo systemctl restart sshd
```
以上步骤适用于 Linux 平台下的服务器配置[^3]。
---
#### 2. **Windows 上的 OpenSSH 配置调整**
对于 Windows 系统作为服务器的情况,同样需要对 `sshd_config` 进行必要的调整。
- **定位配置文件位置**
默认情况下,OpenSSH 的配置文件位于以下路径:
```plaintext
C:\ProgramData\ssh\sshd_config
```
- **编辑配置项**
使用文本编辑工具打开该文件,并按照前述说明进行相应的改动。例如:
```plaintext
PermitRootLogin yes
PubkeyAuthentication no
PasswordAuthentication yes
```
- **保存并重新加载服务**
编辑完成后保存文件并通过 PowerShell 或 CMD 输入以下命令刷新配置:
```powershell
Restart-Service sshd
```
这些操作有助于排除因配置不当引发的身份验证障碍[^4]。
---
#### 3. **验证账户是否存在及权限是否恰当**
即使完成了上述所有设置,仍可能存在目标账号不存在或者其不具备足够的访问权等问题。
- **新增缺失用户**
当发现试图使用的用户名并未存在于系统当中时,应当依据实际情况创建新用户。比如,在 Ubuntu 下可以通过如下指令新建一位名叫 `user3` 的成员及其家目录:
```bash
sudo useradd user3 -m
sudo passwd user3
```
- **赋予适当组别归属**
同时也要留意将刚建立起来的新身份加入至适合的工作群组之中去,从而获得应有的资源操控许可。
这一环节的重要性在于保障所选用的身份确实拥有合法的地位来进行预期的操作活动[^2]。
---
#### 4. **调试客户端行为**
除了关注服务器侧的因素之外,还应审视发起请求的那一方——即客户端部分是否有任何异常状况发生。
- **确认私钥匹配性**
在基于密钥的方式实施连接的过程中,务必保证本地拥有的私钥同远端留存下来的公开组件相互吻合无误。
- **运用 verbose 模式获取更多信息**
添加 `-v`, `-vv`, 或者 `-vvv` 参数给 ssh 命令可以帮助收集更多关于握手过程中每一个细节的信息流输出,进而便于精确诊断哪里出了差错。
```bash
ssh -vvv username@server_ip
```
借助此类手段往往能快速锁定症结所在之处[^1]。
---
### 结论
综上所述,针对 `Permission denied (publickey,password)` 错误现象可以从以下几个方面着手处理:一是核查服务器端的 sshd_config 设定值;二是审查待接入实体的存在性和属性设定;三是利用详尽的日志记录辅助判断潜在隐患点位。只有综合考量各个层面的影响要素之后才能彻底根除这类困扰。
---
localhost: hadoop@localhost: Permission denied (publickey,password). Starting datanodes localhost: hadoop@localhost: Permission denied (publickey,password). Starting secondary namenodes [drz-virtual-machine] drz-virtual-machine: hadoop@drz-virtual-machine: Permission denied (publickey,password).
这个错误可能是由于 SSH 密钥配置问题导致的。你可以尝试以下步骤来解决这个问题:
1. 确认你已经生成了 SSH 密钥对,并且将公钥复制到了 authorized_keys 文件中。
2. 确认你的 SSH 配置文件(通常在 ~/.ssh/config)中已经正确配置了主机名和用户信息,例如:
```
Host localhost
User hadoop
Hostname localhost
```
3. 确认你的 SSH 配置文件中已经正确配置了密钥文件位置,例如:
```
IdentityFile ~/.ssh/id_rsa
```
如果以上步骤无法解决问题,你可以检查以下内容:
- 确认你的 SSH 服务已经正确启动并正在运行。
- 确认你的 SSH 配置文件权限设置正确(通常是 600)。
- 确认你的 SSH 密钥文件权限设置正确(通常是 600)。
希望这些信息对你有所帮助。
阅读全文