3

概要

何らかの理由で、root としてログインしている場合、git コマンドが同じように機能しません。たとえば、通常のユーザーとしてログインしている場合、リポジトリをクローンできますが、同じリポジトリをルートとして同じディレクトリにクローンすることはできません。

通常のユーザー:

> git clone git@192.168.1.103:testing
Cloning into 'testing'...
Enter passphrase for key '/home/Matthew/.ssh/id_rsa': 
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.

(その後、ルート化してレポを削除します...)

根:

# git clone git@192.168.1.103:testing
Cloning into 'testing'...
Password:
Password:
Password:
Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly

私のトラブルシューティングの試み

最初は、これは ssh に関連する何らかの問題だと思っていましたが、あらゆる方法で ssh を実行すると、正常に動作するようです。(ssh経由で直接rootでログインできるように設定は変更していません。)

セットアップの詳細

  • root と他のユーザーの両方に ssh キーを生成しました。
  • リポジトリのクローンを作成しようとしているマシンは、FreeBSD 9 を実行しています (インストールしたばかりです - *nix、ホスティング、システム管理者などについて学習しようとしています)。
  • git サーバーは mac の gitolite です (しばらく問題なく使用しています)

結論

これは *nix/git チョップが多い人には明らかだと思いますが、これまでのところ、インターウェブでそれを理解したり答えを見つけることができませんでした。助けてくれてありがとう!

4

1 に答える 1

5

問題

通常のユーザーはパスワードの入力を求められませんが、スーパー ユーザーは求められることに注意してください。これは、root の秘密鍵がアクセス可能な ssh-agent に読み込まれていないことを示す大きな手がかりです。

ソリューション

su で root になったら、ssh-agent を起動してキーをロードする必要があります。例えば:

sudo su - root
eval `ssh-agent`
ssh-add

使用しているエージェントでキーが表示されている場合はssh-add -l、この時点で正常に複製できるはずです。

注意事項

サーバーで gitolite を使用しているため、パスワード認証は使用できません。公開鍵認証を使用する必要があります。これを機能させるには、root の公開鍵を gitolite 構成に追加し、そのアカウントにアクセスさせたいリポジトリに対して root ユーザーを承認したことも確認する必要があります。

于 2012-06-16T07:07:31.227 に答える