SSH连接 password: Permission denied, please try again
时间: 2024-12-27 15:19:03 浏览: 4
### 解决 SSH 连接时遇到的权限拒绝问题
当遇到 `Connection refused` 或者 `Permission denied (publickey)` 错误时,这通常意味着客户端无法通过公钥认证成功连接到远程服务器。以下是详细的排查和解决方法:
#### 1. 检查 SSH 服务状态
确保目标机器上的 SSH 服务正在运行并监听默认端口(22)。可以通过以下命令检查:
```bash
sudo systemctl status sshd
```
如果服务未启动,则可以尝试启动它:
```bash
sudo systemctl start sshd
```
#### 2. 验证防火墙设置
确认防火墙允许来自外部网络的流量到达 SSH 端口。对于基于 Linux 的系统,可使用如下命令查看当前规则集:
```bash
sudo ufw status
```
必要时添加相应规则来开放所需端口。
#### 3. 客户端配置文件调整
编辑本地用户的 `.ssh/config` 文件以指定正确的用户名、主机名以及私钥路径。例如:
```plaintext
Host myserver
HostName 120.0.0.11
User ubuntu
IdentityFile ~/.ssh/id_rsa_myserver
```
#### 4. 添加私钥至代理程序
为了简化多账户管理流程,在每次会话开始前先加载所需的私钥入内存缓存区:
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_github_account_1
ssh-add ~/.ssh/id_rsa_github_account_2
```
#### 5. 测试连通性
最后一步是再次发起测试性的连接请求看看是否能够正常访问:
```bash
ssh -vT git@github.com
```
此命令中的 `-v` 参数用于启用调试模式输出更多诊断信息以便进一步分析可能存在的其他潜在问题[^1]。
阅读全文