Pio*_*Pio 11 git config amazon-ec2 public-key
从亚马逊ec2服务器克隆git存储库我有一个奇怪的问题.它在我的一台运行ubuntu 12.04的计算机上运行没有任何问题,而在另一台使用12.10的计算机上它给我一个错误:
ssh: Could not resolve hostname ec2server: Name or service not known
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
这就像它没有识别我的配置文件.我使用以下git命令克隆:
sudo git clone ec2server:/var/www/project.git
Run Code Online (Sandbox Code Playgroud)
要么
sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git
Run Code Online (Sandbox Code Playgroud)
这两个配置文件在两台计算机上相同,位于〜./ ssh中,内容如下:
Host ec2server
Hostname ec2XXX.compute-1.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/mykey.pem
Run Code Online (Sandbox Code Playgroud)
如果我用实际地址替换ec2server,我会收到以下错误:
Cloning into 'project'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Von*_*onC 11
它通常是一个许可问题.
在chmod您的配置文件的父目录可能是您的两台计算机之间的不同.
(我不只是谈论直接的父目录.ssh,而是所有的父目录)
请参阅" Git SSH身份验证 ",但也知道如果任何父目录对于组或世界是可写的,则ssh将不起作用.
另请注意,您的第二个命令不对,应该是:
git clone ubuntu@ec2xxx.compute-1.amazonaws.com/var/www/project.git
Run Code Online (Sandbox Code Playgroud)
没有' :'(a' :'表示使用config文件,具有类似scp语法)
只有你有~/.ssh/id_rsa,~/.ssh/id_rsa.pub但它只能工作.
如果你有mykey.pem,那么你需要一个configssh文件来知道你的公钥和私钥在哪里,这意味着只有这个可以工作:
git clone ec2server:/var/www/project.git
Run Code Online (Sandbox Code Playgroud)
另一个chack(在此主题和此论坛之后)检查是否存在任何DNS/DHCP问题(有点像" 使用动态DNS背后的git ").
Host ec2server
Hostname 1xx.xxx.xxx.xxx # ip address of ec2XXX.compute-1.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/mykey.pem
Run Code Online (Sandbox Code Playgroud)
最近我不得不重新安装具有工作配置的系统,我没有设法复制它,所以它不是关于linux版本(非常可能).我设法做的是,我设法使用提到的原始脚本将存储库克隆到我的主目录中.在这里,它正确地选择了名称,但是如果我导航到/ var/www,我以前做过的,它只是给了我同样的错误:可能找不到ec2server .... 所以我认为问题必须与权限+命令组合做一些事情.如果有人能弄清楚如何让它发挥作用,我会将他的回答标记为正确答案,直到那时我才将其标记为正确答案,因为这是最接近正确的答案.
UPDATE
我想出了问题所在:我必须更改/ var/www文件夹的权限才能克隆到该目录中.现在它是777(仅用于本地机器上的dev).
| 归档时间: |
|
| 查看次数: |
12907 次 |
| 最近记录: |