我生成了一个没有密码的SSH密钥对,并将公共密钥添加到GitHub。
连接方式
user@dev:/var/www/project# ssh -T [email protected]
Hi User! You've successfully authenticated, but GitHub does not provide shell access.
成功,当我重命名密钥时,它失败。
但是当我想进行更改时,仍然会询问我用户名和密码的组合。
有没有没有密码的方法吗?
如果要求您提供用户名和密码,则您的原始远程对象指向HTTPS URL,而不是SSH URL。
将其更改为ssh。
例如,像Git这样的GitHub项目将具有HTTPS URL:
https://github.com/<Username>/<Project>.git
和SSH之一:
[email protected]:<Username>/<Project>.git
您可以做:
git remote set-url origin [email protected]:<Username>/<Project>.git
更改URL。
另外,对于要点,看来您必须忽略用户名
git remote set-url origin [email protected]:<Project code>
如果您确实使用了SSH URL,但是在git push时仍然要求输入用户名和密码:
git remote set-url origin [email protected]:<Username>/<Project>.git
您应该尝试使用以下方法进行故障排除:
ssh -vT [email protected]
下面是一个示例输出:
...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
我实际上已经在GitHub上添加了公钥,并且在本地也有私钥。但是,我的私钥的另一个名称叫/c/Users/Yuci/.ssh/github_rsa
。
根据示例输出,Git正在尝试/c/Users/Yuci/.ssh/id_rsa
,我没有。因此,我可以简单地将github_rsa
复制到同一目录中的id_rsa
。
cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa
现在当我再次运行ssh -vT [email protected]
时,我有:
...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
...
Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.
...
现在,我无需输入用户名和密码即可推送到GitHub:-)
您必须使用SSH版本,而不是HTTPS。从存储库克隆时,请复制SSH版本的链接,因为SSH易于使用并且解决了所有访问问题。您可以为输入到帐户中的每个SSH设置访问权限(例如推,拉,克隆等)
这里是一个链接,其中说明了我们为什么需要SSH以及如何使用它:逐步操作
和往常一样,创建SSH密钥并将公共密钥粘贴到Github。将私钥添加到ssh-agent。 (我认为这就是您所做的)。要检查所有内容是否正确,请使用ssh -T [email protected]
下一个不要忘记按如下方式修改远程点git remote set-url origin [email protected]:username/your-repository.git
使用命令行:
输入ls -al ~/.ssh
以查看是否存在现有的SSH密钥。
在终端显示:没有目录
然后生成一个新的SSH密钥
步骤1。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
步骤2。
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): <here is file name and enter the key>
第3步。
Enter passphrase (empty for no passphrase): [Type a password]
Enter same passphrase again: [Type password again]