笔者在尝试通过 SSH 连接到 GitHub 时遇到了权限问题。重要的是要注意到,GitHub 不支持通过密码进行 SSH 访问;它仅支持使用 SSH 密钥对进行身份验证。因此,提示输入 git@github.com's password 表明 SSH 客户端未能找到或使用正确的私钥来认证。

然而,笔者已经仔细检查过,私钥和公钥都已经添加成功,但客户端就是没找到,本着死马当做活马医的心态,笔者在.ssh下新建了一个用于配置的config文件,修改了端口地址,默认的SSH端口是22,笔者在配置文件中修改端口地址为备用端口地址443,这两步操作方式参加前面的文章:

$ ssh -T git@github.comssh报错: connect to host github.com port 22: Connection refused-CSDN博客

之后,重新使用ssh -T重新测试连接,就连接上了。

原因分析:

造成这个报可能的原因是:防火墙或网络限制阻止了默认的 SSH 端口(22)

以下解释来自AI:

大多数公司、学校或某些国家/地区的 ISP(互联网服务提供商)会封锁或限制 SSH 默认端口 22 的访问,以防止员工/学生绕过网络策略或进行远程连接等行为。

但这些网络通常不会封锁 HTTPS 所使用的 443 端口(因为它是用于加密网页通信的标准端口),所以 GitHub 提供了一个备用的 SSH 服务器地址和端口组合来帮助用户绕过这种限制。

在标题的报错中,完整的错误是这样的:

git@github.com's password:
Permission denied, please try again.
...
Permission denied (publickey,password,keyboard-interactive).

笔者并未设置SSH密码,但它提示我输入密码,这是因为在 SSH 协议中:

  • 如果 SSH Agent 没有找到可用的私钥;
  • 或者配置文件没有正确指定私钥;
  • 或者 SSH 无法通过 22 端口连接 GitHub;

SSH 会尝试回退到其他认证方式,比如键盘交互(keyboard-interactive),这时就会提示用户输入密码。由于 GitHub 并不支持通过密码登录 SSH,最终会报错拒绝访问。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐