我正在运行一台 tinycore 机器,我将代码存储在该机器上,然后再将其推送到 github。这也是家里唯一一台转发了 22 端口的机器,因此我必须从这台机器进行推送,因为 github 使用 ssh 作为其推送和拉取的协议。我今天尝试进行推送,但一直收到权限被拒绝(Publickey)错误,因此我阅读了这一页因此我创建了一个 ssh 配置文件,~tc/.ssh/config
其内容如下:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile /home/tc/.ssh/id_dsa.pub
在尝试重新生成 dsa 密钥对后,我仍然遇到问题。
基本上,我看到的是,在我运行完重新生成 dsa 密钥对后
ssh-keygen -t dsa
然后我确认覆盖,按三次回车键以使用:默认位置/home/tc/.ssh/id_dsa
(和同一目录中的 id_dsa.pub),并且没有密码。然后我尝试使用 ssh 连接到 github 来测试连接并收到错误:ssh [email protected]
Permission denied (publickey).
所以我认为这是因为我没有将新生成的公钥添加到 github。因此,我 cat 了公钥并将输出复制到 github 上的设置中,现在每次我尝试 ssh 到 github 时,它都会要求我输入密码,即使我从未指定过密码,而且在查看文件之前它也没有询问我。此外,权限似乎只对用户 tc 有效,只有 rw。
答案1
IdentityFile /home/tc/.ssh/id_dsa.pub
这应该指向你的私人的密钥,而不是你的公钥。公钥位于你连接的服务器上。