尝试使用 git 推送到服务器时出现 SSH 公钥错误

尝试使用 git 推送到服务器时出现 SSH 公钥错误

我正在尝试使用本教程在我的服务器上设置 git 远程存储库: http://toroid.org/ams/git-website-howto

但是当我尝试推送到服务器时,出现此错误:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

因此,似乎由于某些身份验证密钥问题,git 无法通过 SSH 连接到服务器。ssh aws1由于设置了我的 ssh 配置文件,我可以使用 SSH 从终端顺利连接到服务器。

~/.ssh/config 文件:

Host aws1
        HostName 54.235.193.228
        User ubuntu
        IdentityFile ~/.ssh/ec2_key.pem

我用来添加远程和推送的 git 命令:

git remote add web  ssh://54.235.193.228/home/ubuntu/somedirectory.git 

git push web +master:refs/heads/master

我认为我的问题是我不太理解如何使用 ssh 密钥对。教程说:

“我假设该网站将位于您具有 ssh 访问权限的服务器上,并且已设置好一切,以便您无需输入密码即可通过 ssh 访问该网站(即,您的公钥位于 ~/.ssh/authorized_keys 中,并且您正在本地运行 ssh-agent)。”

我不知道 ssh-agent 是什么,我的机器上甚至没有 authorized_keys 文件(我有一个名为 known_hosts 的文件)。我以为使用 ssh 配置文件就足够了,因为它允许我无需密码即可从终端进行 ssh 连接,但显然这是不正确的。我做错了什么?

服务器:EC2实例,Ubuntu 12.04,AWS弹性IP

开发机器:OS X 10.7.5,zsh shell

答案1

为什么不直接aws1在远程使用?这样,您可以重复使用 .ssh/config 配置aws1

git remote add web ssh://aws1/home/ubuntu/somedirectory.git

Git 使用ssh命令来连接,因此适用于ssh命令的一切都适用于 Git。

否则,您将需要指定远程 URL、用户,如。并且由于无法指定应使用哪个私钥,因此无论如何您都需要对其进行配置。ssh://[email protected]/....ssh/config

相关内容