$ ssh -T git@github.com报错:git@github.com: Permission denied (publickey,password,keyboard-interactive
笔者在尝试通过 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,最终会报错拒绝访问。
更多推荐
所有评论(0)