Dav*_*ams 10 git ssh amazon-ec2
我正在尝试将来自github.com的私人仓库签出到我在EC2上的开发实例上.
$ git clone git@github.com:Org/Product.git
Initialized empty Git repository in /home/ec2-user/Product/.git/
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?我也尝试过SSH转发,但是没有用.
我们需要生成一个SSH密钥(两个文件-一个您与世界共享的公共密钥和一个安全的私有密钥),并将其与Git帐户关联。这将使我们能够在EC2实例上克隆我们的Git存储库,而无需在使用脚本时手动输入用户名和密码,或者(更糟糕的是)将密码以明文形式输入。
您可以在本地目录上生成SSH密钥,然后将其复制到EC2实例。您也可以直接在EC2实例上执行此操作,但是每次在新实例上生成SSH密钥对时,每次都需要在GitHub中注册新密钥。
在本地终端中,创建一个SSH密钥替换您的电子邮件地址。
$ ssh-keygen -t rsa -b 4096 -C [your email address]
Run Code Online (Sandbox Code Playgroud)将密钥保存到默认目录〜/ .ssh
输入您选择的密码。
通过转到目录并键入“ ls -l id_rsa *”,检查公用密钥和专用密钥是否在/.ssh中。您应该看到两个文件,分别是名为“ id_rsa.pub”的公钥和名为“ id_rsa”的私钥。
从终端,确保此私钥不可公开查看。
$ chmod 600 ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)将您的SSH私钥添加到ssh-agent并将密码短语存储在钥匙串中。
$ ssh-add -k ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)转到GitHub帐户下的设置,然后单击SSH密钥和New SSH密钥
在终端中,将您的公钥复制到剪贴板。或在EC2终端上显示:
$ pbcopy < ~/.ssh/id_rsa.pub # copy to clipboard
$ cat ~/.ssh/id_rsa.pub # If you prefer appear on screen
Run Code Online (Sandbox Code Playgroud)将其粘贴到GitHub上的密钥框中,然后单击“保存”。此密钥可用于所有Git存储库。
有时您需要将公钥移至“ /.ssh/authorized_keys”,以使公钥在LINUX中起作用。
$ mkdir ~/.ssh # if you don't have /.ssh/ folder
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)遵循本文https://help.github.com/articles/error-permission-denied-publickey/来查看密钥是否有效并进行调试。
| 归档时间: |
|
| 查看次数: |
19072 次 |
| 最近记录: |