我正在尝试在AWS上的Ubuntu实例上创建一个远程存储库,然后从Windows上的本地存储库中推送。我按照教程here。
我按照以下步骤操作:
我做了ssh-add path/to/myKP.pem
。
它给了我一个错误Could-not-open-a-connection-to-your-authentication-agent
。
然后我运行了这个eval $(ssh-agent)
并再次执行了第2步。现在它说身份添加。
我使用 myKP.pem 生成了一个.ppk文件,然后用它来用puth ssh进入我的ubuntu实例。
执行以下命令:apt-get update
和apt-get install git-core
。
mkdir repo.git
和cd repo.git
以及git init --bare
然后,在我的本地目录中,我运行了git init
和git add .
以及git commit -m "Init commit"
git remote add origin ubuntu@publicIP:/repo.git
git config --global remote.origin.receivepack "git receive-pack"
。
git push origin master
。
然后我收到了这个错误:
fatal: 'ubuntu@publicIP/repo.git' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
有人可以告诉我在我的Ubuntu实例上创建一个空的git存储库然后从我的本地存储库推送时应遵循的步骤。
注意我正在使用Windows。
编辑:我是否还需要在我的Ubuntu实例上存储 .pem 文件?
如果对某些人来说这很容易,我很抱歉,但我是SSH和AWS的新手。
答案 0 :(得分:3)
说明似乎是正确的。以下步骤顺序应该有效。
EC2实例
ssh-add path/to/local/ec2.pem
本地计算机ssh-add
这是在设置EC2实例时指定的.pem文件。它不需要在EC2实例上。
ssh-add
对于Windows,您可以下载GitHub Desktop For Windows。安装后,ec2.pem
应该可用。按照这些steps将ssh auth agent
文件(私钥)添加到mkdir test-repo
cd test-repo
git init
echo "This is a test repo" > README.md
git add README.md
git commit -m "Added readme file"
git remote add origin ec2-user@aws-host-name-or-ip-here:/path/to/test-repo.git
git remote -v #for-verification
git config --global remote.origin.receivepack "git receive-pack"
git push origin master
( Windows标签 - 部分:将SSH密钥添加到ssh-agent )
本地计算机推送到存储库
invalidateCache() {
let now = Date.now()
return keys(cacheStore).then((keys) => { // 1st
keys.map((key) => {
return this.getCachedResponse(key).then((item) => { // 2nd
if (item.expire < now) {
this.deleteCache(key)
}
})
})
}).catch((err) => {
console.error(err)
})
}
答案 1 :(得分:1)
SSH有两种登录方式:使用用户名/密码组合,或使用私钥/公钥组合。关于公钥/私钥的好处在于,在设置之后,您不必每次为git命令键入用户名/密码(当您执行git push / pull到SSH远程服务器时)。
如果你使用PuTTY,它有一个工具puttygen(c:\ Program Files \ PuTTY \ puttygen.exe),它可以帮助你在Windows机器上生成密钥。它有2个按钮:“保存公钥”是将您的公钥保存到像“DragonBorn.pem”这样的文件中。 “保存私钥”是将公钥和私钥保存在一个文件中,如“DragonBorn.ppk”。
通常“pem”只包含公钥,您只需要将该密钥复制到服务器(服务器不应该访问您的私钥)。如果将公钥添加到服务器上的可信密钥列表(authorized_keys
),服务器将允许您输入密码。
有一些工具可以帮助您将密钥复制到服务器,但实际上很容易手动完成:
~/.ssh/authorized_keys
。通常你可以使用vim,输入命令:vi ~/.ssh/authorized_keys
现在已经设置了服务器。
不是结束:)) 要设置客户端,您需要告诉PuTTY使用您的私钥“DragonBorn.ppk”登录。 这是在左侧的Connection - SSH - Auth类别的PuTTY配置中完成的,右侧是“用于身份验证的私钥文件” - 这是您指定ppk的位置。
这不是很直观,但在PuTTY中你必须先从“已保存的会话”列表中选择你的会话,点击“加载”,然后你修改设置(例如指定“ppk”),然后去回到“会话”并按“保存”按钮。这将为将来节省它。