17

Amazon ec2 サーバーから git リポジトリをクローンする際に奇妙な問題があります。ubuntu 12.04を実行しているコンピューターの1つで問題なく動作しますが、12.10を使用している別のコンピューターではエラーが発生します。

ssh: Could not resolve hostname ec2server: Name or service not known  
fatal: The remote end hung up unexpectedly

私の設定ファイルを認識していないようです。次の git コマンドを使用してクローンを作成します。

sudo git clone ec2server:/var/www/project.git

また

sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git

2 つの構成ファイルは両方のコンピューターで同じで、~./ssh 内に次の内容があります。

Host ec2server
   Hostname ec2XXX.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/mykey.pem

ec2server を実際のアドレスに置き換えると、次のエラーが発生します。

Cloning into 'project'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

前もって感謝します。

4

2 に答える 2

20

これは通常、許可の問題です。
構成ファイルのchmod親ディレクトリは、2 台のコンピューターで異なる場合があります。(そして、直接の親ディレクトリだけでなく、すべて
の親ディレクトリ についても話している).ssh

Git SSH 認証」を参照してください。ただし、親ディレクトリのいずれかがグループまたはワールドに対して書き込み可能である場合、ssh は機能しないことも知っておいてください。


また、2 番目のコマンドは正しくないことに注意してください。次のようにする必要があります。

git clone ubuntu@ec2xxx.compute-1.amazonaws.com/var/www/project.git

いいえ ' :' (' ' は - のような構文でファイル:を使用することを意味します)configscp

~/.ssh/id_rsaあなたが持っている場合にのみ機能し~/.ssh/id_rsa.pubます。
mykey.pem がある場合、ssh が公開鍵と秘密鍵の場所を知るためのファイルが必要configです。これは、これだけが機能することを意味します。

git clone ec2server:/var/www/project.git

もう 1 つのチェック (このスレッドとこのフォーラムの後) は、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
于 2013-01-20T10:39:22.680 に答える
6

最近、作業構成を保持していたシステムを再インストールする必要がありましたが、それを複製することができなかったため、Linux バージョンに関するものではありません (可能性が非常に高い)。私がなんとかしたことは、前述の元のスクリプトを使用して、リポジトリをホームディレクトリに複製したことです。ここでは正しく名前を取得しましたが、以前に行っていたように /var/www に移動すると、同じエラーが発生しました: could ec2server not found ... . したがって、問題は権限とコマンドの組み合わせで何かをしなければならないと思います。誰かがそれを機能させる方法を理解できる場合は、彼の回答を正解としてマークします。それまでは、これが正解に最も近いため、私の回答を正解としてマークします。

アップデート

問題が何であるかを突き止めました。/var/www フォルダーのアクセス許可を変更して、そのディレクトリにクローンできるようにする必要がありました。現在は 777 です (ローカル マシンでの開発にのみ使用されます)。

于 2013-01-23T18:14:12.527 に答える