4

サーバー上の他のユーザーの公開鍵/秘密鍵を作成する方法がわかりません。私のサーバーでは、シェルを介して次のように入力します

(uiserver):john:> ssh-keygen -t dsa

その後、ファイル名とパスワードを入力すると、「john」の秘密鍵と公開鍵のペアが正常に作成されます。このキーを使用して Subversion リポジトリ (john に座っている) に ssh すると、すべてのアクションが "john" としてログに記録されます。それは最高です。

次に、"george" の公開鍵と秘密鍵のペアを作成して、彼が私のサーバーにアクセスできるようにします。サーバーから ssh-keygen を繰り返しました。次に、秘密鍵をジョージに渡しました。ジョージはキーを正常にインストールしましたが、svn リポジトリでアクションを実行するたびに、Subversion は彼のアクションを「george」ではなく「john」としてログに記録します。"george" と "john" の違いを Subversion に認識させるにはどうすればよいですか?

authorized_keys2 を調べたところ、両方のキーの最終コメントが「john@uiserver」であることがわかりました。コメントを編集してみましたが、Subversion はまだ george と john の違いを認識できません。

追加の詳細

ジュリアーノの答えに基づいて、半分は機能するソリューションがあります。私は "david" マシン (Linux) に行き、prv/pub キーを作成し、pub キーを john のauthorized_keys2 にアタッチしました。完全!SVN は、david の変更を david としてログに記録しています。

私は "george" マシン (windows xp) に行き、puttygen を使用して prv/pub キーを作成し、pub キーを john のauthorized_keys2 にアタッチしました。George は svn にアクセスできますが、彼の変更はすべて john として記録されます。TortoiseSVN で設定する場所がわかり次第、bojo のトンネル ソリューションを試しています。

答え

bojoの回答のオプション2を使用しました。最後に、私がする必要があったのは、次の行を自分のauthorized_keys2に追加することだけでした

command="svnserve -t --tunnel-user=george",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss <george's long public key> == meaningful comment

行も追加しました

george=george's password

/pathtorepository/conf/passwd に Subversion パスワード ファイルに

4

4 に答える 4

4

次に、秘密鍵をジョージに渡しました。

秘密鍵は、理由から秘密と呼ばれます。これらは、この方法で転送されることを意図したものではありません。ジョージは、自分のユーザー環境で自分の鍵ペアを作成する必要があります。しかし、これはあなたが経験している問題とは関係ありません。キーは、非常に大きな数の素因数にすぎません (理解しやすいように簡略化しています)。ユーザー ID はキーの一部ではなく、キーに添付される「ラベル」であり、SSH はあまり使用されません。

あなたの説明から、SSH 経由で John のアカウントにログインするように George に依頼しています。SVN アクションでログインしているユーザーを決定するものは、認証に使用されるキー ペアとは関係ありませんが、実際にログインしているユーザーに関係しています。

そのため、Georgeは SVN サーバーにログインする自分のアカウントを持っている必要があり、リポジトリは両方のアカウントで共有されている必要があり、George自分の資格情報を使用してサーバーにログインする必要があります。

ジョンの URL: svn+ssh://john@svn-server/path/to/repo

ジョージの URL: svn+ssh://george@svn-server/path/to/repo

于 2009-02-28T14:01:24.257 に答える
3

--tunnel-user コマンドの使用方法については、こちらのsvn manualで確認してください。ジョージがジョンとして表示される理由は、sshセッションにどのユーザーであるかを伝えていないためだと思います。デフォルトでジョンのアカウントになります。

明確にするために、元のポスターには 2 つのオプションがあります。

  1. ジョージの新しいユーザー アカウントを作成します。これは、彼がスーパー ユーザー アクセス権を持っていることを前提としています。
  2. 2 番目のキーを生成し (理想的には George がこれを行います)、John アカウントの .ssh/authorized_keys ファイルに追加し、上記のリンクされたコマンドを説明に従って .ssh/authorized_users ファイルに追加します。このリンクには、John アカウントへの追加ユーザーのアクセスを制限する方法も記載されています。
于 2009-02-28T14:00:51.513 に答える
0

これは、間違ったユーザー名の ssh プロンプトを介したブログ エントリ svn を指しているこのSO の質問に関連していますか?

解決策は、george .ssh ディレクトリに構成ファイルを作成し、以下を配置することでした。

Host uiserver
User george
于 2009-02-28T13:55:02.977 に答える
0

以下を使用して試すことができます。

ssh-keygen -C "george"
于 2012-01-03T17:29:30.610 に答える