web-dev-qa-db-ja.com

SSHトンネル経由でGitリポジトリにアクセスする

GITサーバーにアクセスできるSSHアカウントにアクセスでき、このSSHログインでリポジトリのクローンを作成/プッシュ/プルできます。ただし、このリポジトリに他の場所からアクセスすることはできません。

私が使用するSSHアカウントでは、

git clone git@gitserver:proj/myrepo.git

レポを複製します。

私は別のマシンからgitサーバーへのsshトンネルを設定してみました、

ssh -L 3333:gitserver:22 userid@sshserver
git clone ssh://localhost:3333/proj/repo.git

しかし、ユーザー「git」のパスワードの入力を求められ続けます。ここで私が間違っていることはありますか?

14
Bootstrapper

これを行うと:

git clone git@gitserver:proj/myrepo.git

sshクライアントがローカルホスト( 'sshserver')で起動し、公開キー認証を使用して 'gitserver'で認証しています。ユーザー 'git'のパスワードの入力を求められた場合は、公開鍵認証が失敗し、sshが次の方法であるパスワード認証に進んでいることを意味します。

公開鍵認証が失敗する最も可能性の高い理由は、sshクライアントに必要な秘密鍵がないことです。この場合、「git @ gitserver」として認証するために必要なキーはsshserver:〜/ .sshにあると思われます。あなたのSSHトンネルを介して。

これを解決するには、そのクライアントに適切なキーへのアクセス権を与える必要があります。ローカルで〜/ .sshに追加するか、sshエージェントにロードできます。

13
gcbenison