Git生成的ssh公钥部署在GitHub后校验报错Permission denied(publickey, password, keyboard-interactive)完美解决
前置
正确的配置了ssh公钥各个环节同样的步骤在gitee
上没问题,但是github
就不行这篇文章以Mac为主,因为我用的就是,Windows根据原理自己慢慢解决!😁报错
ssh -T git@Permission denied (publickey, password, keyboard-interactive)
验证自己的步骤
详细查看GitHub官网:Error: Permission denied (publickey)GitHub官方生成ssh密钥公钥流程 首先,确认咱们的公钥密钥是否存在cd ~/.ssh/// 如果没有就生成公钥密钥,网上教程太多了,不再赘述// 查询已附加的公钥,一般会出现几个,指纹ssh-add -l 4096 SHA256:xxxxxx your-email@ (RSA)256 SHA256:xxxxxx your-email@ (ED25519) // github推荐算法// 如果没有你就添加就完事,别笨到真复制粘贴了!⚠️ssh-add ~/.ssh/${你的私钥名}// 再次查看应该会看到指纹 ssh-add -l
校验指纹:不正确你就重新创建了再穿上去;去你的GitHub上 -> setting -> SSH And GPG keys 查看指纹是否一致 此时,公钥密钥没问题,GitHub上传到公钥也没问题后,就查看config
文件!
vim ~/.ssh/config// oropen ~/.ssh/config
没有就创建
HOST hostname User xiaoqivarIdentityFile /Users/xiaoqinvar/.ssh/id_rsaPreferredAuthentications publickey// 特别注意这个的hostname,我的Permission denied可能就是DNSHOST Hostname Port 443User xiaoqinvarIdentityFile /Users/xiaoqinvar/.ssh/id_ed25519PreferredAuthentications publickey
你可以测试使用测试github
ssh -T -p 443 git@// 如果有效就用这个主机地址即可,看到别人的评论140.82.114.4也行
简而言之,上面的
Hostname
应该修改为,自己ping的通的地址或域名
到这里,我的问题就完全解决了
使用GPG
用于校验提交安全的 开启 下载gpgbrew install gpg
根据输入内容生成gpg密钥,密码设置的要记得要用
gpg --full-generate-key
列出密钥
gpg --list-secret-keys --keyid-format=long------------------------------------sec rsa4096/DB964648910EA155 -09-23 [SC]09264A566BA57F100518797EDB964648130EA155uid [ 绝对 ] xiaoqinvar <17683860320m0@>ssb rsa4096/B5C6C23FD147109B -09-23 [E]// 其中DB964648910EA155为id
将公钥提交到ssh and gpg keys
里
// 获取公钥gpg --armor --export DB964648910EA155为id
git匹配gpg
git config --global user.signingkey {key_id} // 用你的key_id
加上-S
参数,表示这次提交需要用GPG密钥进行签名,用来确保是git本人操作,可以设置成每次自动进行签名
// git commit -S -m "..."git config --global commit.gpgsign true
要用弹框输入密码,这里需要下载官方推荐的工具
brew install pinentry-macecho "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.confkillall gpg-agent
参考文章
GitHub官方告诉 Git 你的签名GPG密钥GPG 安装与使用求助,github 已经配置好 ssh,但是提示输入密码👍Git生成的ssh公钥部署在GitHub后校验报错Permission denied(publickey password keyboard-interactive)完美解决