Brady Trainor
Brady Trainor

Reputation: 2076

ssh github works, but not git push.

I've never encountered ssh working and git not working in this way. Not sure how to troubleshoot.

ssh seems to work (-T prevents the first line):

iam@heeere:/e/.ssh$ ssh github
PTY allocation request failed on channel 0
Hi bradyt! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

git push seems to not work

iam@heeere:/e/basic-computing-notes$ git push
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

configs

My git config is

iam@heeere:/e/basic-computing-notes$ git config -l
[email protected]
user.name=Brady Trainor
push.default=simple
alias.ac=!git add --all && git commit
alias.lol=log --oneline --graph --decorate --all
core.editor=vim
core.excludesfile=/e/configs/.gitignore_global
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
[email protected]:bradyt/basic-computing-notes.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

My ssh config includes

Host github
  HostName github.com
  User git
  IdentityFile "~/.ssh/github_rsa"

Upvotes: 4

Views: 4663

Answers (4)

Ian Andwati
Ian Andwati

Reputation: 434

I've had the same problem here when using 'https' protocol.

Git push doesn't work for 'https' protocol but if I manually change it to 'git' it works.

This doesn't work:

git push https://github.com/username/repo.git

But changing it to this works:

git push [email protected]:username/repo.git

Upvotes: 0

Norman Pellet
Norman Pellet

Reputation: 414

Although this is not the answer to OP's question, I put this here for other people who might end up here like me:

When using a non-standard SSH port, the protocol needs to be explicitly specified, i.e.

git remote set-url origin git+ssh://git@host:port/url.git

instead of

git remote set-url origin git@host:port/url.git

Upvotes: 0

Yusufali2205
Yusufali2205

Reputation: 1372

I came across the same issue and I found out there was an entry in my .gitconfig which was replacing ssh with https.

[url "https"]
    insteadOf = git

I might have accidentally added this entry while using some tool. After removing this the problem was resolved.

Upvotes: 1

VonC
VonC

Reputation: 1323115

Since your ssh keys has not the default name (id_rsa, id_rsa.pub), you need to use the ssh config entry you defined, in order for your ssh url to reference the right keys:

git remote set-url origin github:bradyt/basic-computing-notes.git

That way, ssh will look for ~/.ssh/github_rsa, instead of looking for ~/.ssh/id_rsa.


Simpler, musiKk suggests in the comments, changing the entry of the ssh config to github.com.

Host github.com github
  HostName github.com
  User git
  IdentityFile "~/.ssh/github_rsa"

I have kept the Hostname and User just to be sure, but the default url would then work ([email protected]:bradyt/basic-computing-notes.git)

As raphinesse mentions in the comments:

In case you still want to use the shortcut github, the Host keyword allows for multiple patterns.
From the ssh_config man page:

If more than one pattern is provided, they should be separated by whitespace.

Upvotes: 7

Related Questions