4

私は頭がおかしくなる問題があります...少なくとも2時間は修正しようとしましたが、あまり成功しませんでした.

問題自体: Git および gitolite 環境をホストすることになっている VM に CentoS7 をインストールしました (CentOs 7 固有の動作かどうかはわかりません)。必要なサービスとユーザーをインストールしました。すべてが正常に動作しており、パスワードとキーベースの認証を使用して SSH 経由で接続できます。すべてのユーザーのホーム ディレクトリは /home/ にあります。ここで、ホーム ディレクトリとして /srv/data/home/git (/srv は別のパーティションにあります) を持つ新しいユーザー (git) を追加し、キー ベースの認証を有効にします。両方のパーティションは ext4 でフォーマットされています。

grep git /etc/passwd
git:x:1000:1000::/srv/data/home/git:/bin/bash

gitolite をインストールし、公式ドキュメントに従ってユーザーを作成しました。

su - git 
mkdir -p ~/.ssh
chmod 700 ~/.ssh
mkdir gitclone-dir 
cd gitclone-dir
git clone git://github.com/sitaramc/gitolite
cd gitclone-dir
gitolite/install -ln ~/bin
gitolite setup -pk /srv/data/home/git/.ssh/git_admin.pub

gitolite setup コマンドの出力は次のとおりです。

/srv/data/home/git/repositories/gitolite-admin.git/ で空の Git リポジトリを初期化しました /srv/data/home/git/repositories/testing.git/ で空の Git リポジトリを初期化しました 警告: /srv/data/home /git/.ssh/authorized_keys がありません。新しいものを作成する(これは、まったく新しいインストールでは正常です)

次のステップには、継続的に失敗する gitolite-admin リポジトリのクローンが含まれます。

marcel@mw-ws:~/Sources/juwimm_git/ayeq-benu$ git ls-remote git@192.168.10.35:gitolite-admin.git
git@192.168.10.35's password: 
X11 forwarding request failed on channel 0
fatal: 'gitolite-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

debug3 ログ全体を表示するには、次のリンクをたどってください: http://pastebin.com/eiZSTu55

最も重要な行:

Jul 18 17:45:40 bh-infra-s010 sshd[2739]: debug1: temporarily_use_uid: 1000/1000 (e=0/0)
Jul 18 17:45:40 bh-infra-s010 sshd[2739]: debug1: trying public key file /srv/data/home/git/.ssh/authorized_keys
Jul 18 17:45:40 bh-infra-s010 sshd[2739]: debug1: Could not open authorized keys '/srv/data/home/git/.ssh/authorized_keys': Permission denied

今、私はいくつかのチェックを行いました:

su - root 
cat /srv/data/home/git/.ssh/authorized_keys 
# the statement above works fine and I see the files content on the command line 
su - git
cat /srv/data/home/git/.ssh/authorized_keys 
# with the same result. It's working fine

さらにいくつかのテストを行いました。以下の私のテストケースの要約を見つけてください: 結果:うまくいきました!- ホームディレクトリとして /srv/testuser2 を使用してユーザーを作成し、上記とまったく同じことを行いました。結果:authorized_keys ファイルに対するアクセス許可が拒否されました。/home/testuserls をホーム ディレクトリとして新しいユーザーを作成し、.ssh ディレクトリに対して手順を繰り返しました。ここで、/home/testuser3 から /home/testuserls へのシンボリック リンクを作成し、/etc/passwd を変更して、/home/testuser3 をこのユーザーのホーム ディレクトリとして設定しました。結果:うまくいきました!- /srv/testuser4 をホーム ディレクトリとして新しいユーザーを作成し、.ssh フォルダーに配置し、/home/testuser4 から /srv/testuser4 へのシンボリック リンクを作成し、/etc/passwd をもう一度変更してホーム ディレクトリを /home にマップしました。 /testuser4. 結果:

ls -l /srv/data/home/git/.ssh/

これは私に与えます:

total 16
-rw-------. 1 git git 1108 Jul 18 16:28 authorized_keys
-rw-------. 1 git git 1679 Jul 18 13:31 id_rsa
-rw-------. 1 git git  399 Jul 18 13:31 id_rsa.pub

なぜこれが起こるのか、これを修正する方法はわかりません。CentOS7関連ですか?私は盲目ですか、それとも愚かですか?これはバージョン openssh-server-6.4p1-8.el7.x86_64 の ssh デーモンからの新しい制限ですか? 私はグーグルまたはこちら側で同様の問題を見つけられず、解決策を見つけることができませんでした...どんな助けも本当に感謝しています!

更新 I すべてのパーティション (もちろんスワップを除く) は ext4 としてフォーマットされます。/etc/mtab の各行は次のとおりです。

/dev/vda1 /boot ext4 rw,seclabel,relatime,data=ordered 0 0 
/dev/vda2 / ext4 rw,seclabel,relatime,data=ordered 0 0 
/dev/vdb1 /srv ext4 rw,seclabel,relatime,data=ordered 0 0 

ACL は使用しません。それ以外の場合は、上記の行にマウント オプションとしてリストされているはずですよね? UID 1000 はユーザー git の UID です。

grep git /etc/passwd git:x:1000:1000::/srv/data/home/git:/bin/bash

/ から始まるパーミッションを確認しましょう

/srv: drwxr-xr-x. 10 root root 4096 Jul 18 16:48 srv 
/srv/data: drwxr-xr-x. 3 root root 4096 Jul 18 12:25 data 
/srv/data/home: drwxr-xr-x. 4 root root 4096 Jul 18 16:45 home 
/srv/data/home/git: drwx------. 7 git git 4096 Jul 18 15:30 git 
/srv/data/home/git/.ssh: drwxr-----. 2 git git 4096 Jul 18 16:40 .ssh 

** アップデート II - 修正済み **

selinux が有効化されていることが判明しました。この問題は、.ssh-Folder で次のコマンドを実行することで修正されました。

chcon -R --type=ssh_home_t .ssh 
4

0 に答える 0