发现git gui 和 git bash 均无法push 到 服务器。
ssh -T git@github.com
git@github.com: Permission denied (publickey).
问题
使用ssh-add时报错
-
PS D:\code> ssh-add -l
-
Error connecting to agent: No such file or directory
处理步骤
- 检查ssh-agent服务是否启动成功
-
PS D:\code> get-service ssh*
-
Status Name DisplayName
-
------ ---- -----------
-
Stopped ssh-agent OpenSSH Authentication Agent
- 发现ssh-agent服务状态为 stopped,启动服务
-
PS D:\code> Set-Service -Name ssh-agent -StartupType Manual
-
PS D:\code> Start-Service ssh-agent
- 执行ssh-add命令检查是否成功
-
PS D:\code> ssh-add -l
-
2048 SHA256:Dw8iD5trSzInnsmmDpaXBusdfL2K3wM3b+GMulKNHbAU C:\Users\Administrator\.ssh\xxx-pc (RSA)
-
2048 SHA256:Mb4qKSueS8bqNALm3423eD98KdTIuEwnLvfVWTNPCusg C:\Users\Administrator\.ssh\yyy (RSA)
我实际在cmd中测试 ,在powershell中识别ssh-add.
ssh-add ./.ssh/id_rsa
Identity added: ./.ssh/id_rsa (xxxxx@xxxx.com)
ssh-add -l
3072 SHA256:GGYpp6ClVY0iN+4lMKnuVfoPhLxYT+jBSPeRJZGTHZQ xxxx@xxxx.com (RSA)
发现仍然不可以。
跟同事沟通,发现我推送到git仓的方式是https方式,导致push失败。应该使用ssh。
命令
git-remote - Manage set of tracked repositories(管理被追踪的仓库集合)
1
概要
git remote set-url [--push] <name> <newurl> [<oldurl>]
git remote set-url --add [--push] <name> <newurl>
git remote set-url --delete [--push] <name> <url>
修改远程仓库的url只是这个命令的一个功能。
所以,要修改远程仓库,只需要进入代码目录:
git remote -v
# 查看当前的远程仓库
git remote set-url origin https://where you want to put your repository to.git
# 修改为想要设置的远程仓库
git remote -v
#验证一下
最后发现可以push了
git push origin fixSonar
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 8 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 1.84 KiB | 377.00 KiB/s, done.
Total 9 (delta 7), reused 0 (delta 0), pack-reused 0
remote:
remote: To create a merge request for fixSonar, visit:
结论就是 git访问方式导致的问题。