10

このように、MacbookにSSHトンネルをセットアップしました...

$ ssh -o ServerAliveInterval=3 -N -L 22222:gitosis-server:22 user@firewall.domain.com

したがって、localhost:22222 に ssh でき、ファイアウォールの背後にある gitosis-server に到達します。

ローカルの id_rsa.pub ファイルを作成し、それを gitosis サーバー (Centos5 を実行) にコピーし、次を使用して gitosis にインポートしました...

# sudo -H -u gitosis gitosis-init

/var/lib/gitosis/.ssh/authorized_keys に公開鍵が表示されているので成功です。

私のMacbookに戻って、次のように ~/.ssh/config ファイルをセットアップします...

ホスト gitosis-server
ホスト名 localhost
HostKeyAlias gitosis-server.domain.com
  ポート 22222

だから...私はこのコマンドがうまくいくはずだと思っています...

$ git clone gitosis@gitosis-server:gitosis-admin.git

ただし、パスワードを要求することはありません....公開鍵が機能している必要がある場合。

/Users/USER/Development/gitrepo/gitosis-admin/.git/ で初期化された空の Git リポジトリ
gitosis@localhost のパスワード:

ファイアウォールの背後にある gitosis サーバーまで git を機能させるためのアイデアはありますか?

ありがとう、
マット


編集 - SSH 試行からのデバッグの追加

「ssh -vvv gitosis@gitosis-server」というコマンドを実行しました。デバッグが戻ってきましたが、私のアイデンティティが気に入らないようです。

debug2: キー: /Users/USER/.ssh/id_rsa.gitosis (0x1019b0)
debug1: 続行できる認証: publickey、gssapi-with-mic、password
debug3: 最初からやり直して、別のリスト publickey,gssapi-with-mic,password を渡しました
debug3: 優先公開鍵、キーボード インタラクティブ、パスワード
debug3: authmethod_lookup 公開鍵
debug3: 引き続き優先: キーボード インタラクティブ、パスワード
debug3: authmethod_is_enabled 公開鍵
debug1: 次の認証方法: publickey
debug1: 公開鍵の提供: /Users/USER/.ssh/id_rsa.gitosis
debug3: send_pubkey_test
debug2: publickey パケットを送信しました。応答を待ちます
debug1: 続行できる認証: publickey、gssapi-with-mic、password
debug2: パケットを送信しませんでした。メソッドを無効にします
debug3: authmethod_lookup パスワード
debug3: 残り優先: ,password
debug3: authmethod_is_enabled パスワード
debug1: 次の認証方法: パスワード
gitosis@localhost のパスワード:

編集2

OK...間違いなく悪いキーです。すべてのキーを再度確認したところ、もちろん、gitosis-server がauthorized_keys ファイルに不正なキーを保持していることがわかりました。

debug1: userauth-request for user gitosis service ssh-connection method none debug1: 試行 0 失敗 0 debug1: PAM: 「gitosis」の初期化中 debug1: PAM: PAM_RHOST を「firewall.domain.com」に設定 debug1: PAM: PAM_TTY を「ssh」に設定 debug1: userauth-request for user gitosis service ssh-connection method publickey debug1: 試行 1 失敗 1 debug1: pkalg/pkblob が受け入れられるかどうかをテストします debug1: temporary_use_uid: 102/103 (e=0/0) debug1: 公開鍵ファイル /var/lib/gitosis/.ssh/authorized_keys を試しています debug1: restore_uid: 0/0 debug1: temporary_use_uid: 102/103 (e=0/0) debug1: 公開鍵ファイル /var/lib/gitosis/.ssh/authorized_keys2 を試しています debug1: restore_uid: 0/0 FIRE.WALL.IP.ADDRESS ポート 52453 ssh2 からの gitosis の公開鍵の失敗

gitosis サーバーの authorized_keys ファイルを詳しく調べてみましたが、正しくありませんでした。ワークステーションから /tmp にコピーした公開鍵ファイルを再確認したところ、正しいものでしたが、authorized_keys にあるものとは異なりました。サーバー上のauthorized_keysファイルを削除し、「sudo -H -u gitosis gitosis-init < /tmp/id_rsa.gitosis.pub」を再実行しました。authorized_keys ファイルをもう一度確認しましたが、それでも間違っていました。

私は、authorized_keys を編集して正しいキーを追加することで、手動で更新しました。その後、1 回か 2 回、トンネルを介してワークステーションから動作するようになりました。その後、以前のように機能しなくなりました。私はgitosisサーバーのauthorized_keysファイルに戻りましたが、確かに....gitosisはそれを機能しない古いキーに戻しました。

なぜこれをやっているのですか....悪い公開鍵に戻っています....上記のコマンドで追加しようとした後でも...変更に失敗しました....その後、手動で変更しました....これは機能しましたが、git は再び悪い状態に戻りました。

gitosis は、最初に入れたキーを記憶し続けているようなものです....そして、それを正しいキーに変更させてくれません。

もどかしい...

マット

4

5 に答える 5

4

ファローアップ:

なぜgitosisが悪い公開鍵の再利用を主張したのかわかりません。正しいキーを取得するように強制しようとしても機能しませんでした。

そのため、今日、CentOS5ボックスからgitosisパッケージを削除して再インストールしました。

yumはgitosisを削除します
rm -rf / var / lib / gitosis
yum install gitosis
sudo -H -u gitosis gitosis-init </tmp/id_rsa.gitosis.pub#  正しいキー

私のMacでは、ファイアウォールを介してlocalhost:22222をgitosis-server:22にSSHで接続します。

$ ssh -o ServerAliveInterval = 3 -N -L 22222:gitosis-server:22 user@firewall.domain.com

私のMacで、次のような〜/ .ssh/configを作成しました...

ホストgitosis-server
ホスト名ローカルホスト
IdentityFile〜/ .ssh / id_rsa.gitosis
HostKeyAlias gitosis-server.domain.com
  ポート22222

次に...このサイトの指示に従ってください...

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

...その後のすべて... 「ここでいくつかのクールな魔法が起こります。これをローカルマシンで実行してください:」 ...正常に機能します...ユーザー名「git」を「gitosis」に置き換えることを忘れないでください。

そのナンセンスが誰かを助けることを願っています。私がここで得た提案にも感謝します....それは問題を絞り込むのに役立ちました。

マット

于 2009-08-14T22:15:39.893 に答える
2

これはssh問題であり、(まだ) 問題ではありませんgit

ssh -vsshどの認証方法とキーが使用しようとしているかについてのデバッグ情報を提供するので、あなたの友人です。

10 回のうち 9 回は、これがキー ファイルのアクセス許可の問題であることがわかりました。ディレクトリとファイルを「ユーザー」のみが書き込み可能にすることをssh好み、私の umask はデフォルトでグループ書き込み可能ファイルを許可します。これがあなたの状況に当てはまるかどうかを教えてくれます。.sshid_rsassh -v

編集

sshd サーバーがあなたの ID を受け入れていないようです。リモート サーバーにアクセスできるかどうかはわかりませんが、sshdサーバーをデバッグ モードで実行すると役立つ場合があります。

このようなものを実行すると、指定されたポートで 1 つの接続が許可され (通常のサービスが中断されないようにsshd)、デバッグ情報が出力されます。これは、サーバーがあなたの ID を好まない理由をデバッグするのに役立つ場合があります。

sshd -d -p 2022

「通常の」sshd サービスが追加のパラメーターを使用して実行される場合は、これらをデバッグ バージョンにも指定してください。

于 2009-08-12T07:27:09.420 に答える
1

あなたはsshにlocalhost:2222成功したと言います。正しく設定されていることを確認するため~/.ssh/configに、ssh で接続できますgitosis-serverか?

ssh gitosis-server
于 2009-08-12T07:25:12.107 に答える
0

同様の問題があり、次の方法で解決しました。

[srydberg@zeus ~]$ echo $SSH_AUTH_SOCK
/tmp/keyring-KXX3Aw/ssh
[srydberg@zeus tmp]$ sudo rm -rf keyring-KXX3Aw/

たぶんあなたの鍵はそこにキャッシュされていましたか?

于 2010-11-24T22:29:42.580 に答える