问题
I am deploying an app on Heroku so I created a Heroku app from a repo and then did git push heroku master
. When I do this it keeps giving me the error:
! Your key with fingerprint xxx is not authorized to access heroku-app.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
I tried various things with changing my SSH keys including deleting them all and creating new ones. Still it gives me the same error. I have added the key to Heroku.
Then I tried running ssh -vT git@heroku.com:heroku-app.git
and the result was:
OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
ssh: Could not resolve hostname heroku.com:heroku-app.git: nodename nor servname provided, or not known
I cannot figure out what that error is pointing to. The hostname is definitely valid. Is it possible I am don't have something I need in the SSH config file? Any ideas would be fantastic because I have spent quite a few hours today trying to get this to work without avail.
回答1:
git@heroku.com:heroku-app.git
is an SCP format for this ssh address.
It relies on a ~/.ssh/config
file with a 'heroku.com' entry, which specify the user, the actual hostname, and if needed, the private/public key path.
host heroku.com
user git
hostname heroku.com
identityfile ~/.ssh/yourPrivateKey
Again: heroku.com
in 'heroku.com:heroku-app.git
' is not an hostname: it is an entry in an ssh config file.
You could replace heroku.com
by xxx
: git push xxx:heroku-app.git
, provided you have an xxx entry in the ~/.ssh/config
file.
回答2:
It also be as simple as:
- $ heroku login
- $ heroku git:clone -a appname ( this line right here solved it for me)
- $ git add .
- $ git commit -am "make it better"
- $ git push heroku master
after making sure $ heroku git:remote -a appname (has not name conflict between heroku and git)
来源:https://stackoverflow.com/questions/14132492/why-cant-git-resolve-the-hostname-when-i-push-to-a-valid-ssh-address