4

SSH アクセスできるサーバーがあり、そこに Git オリジン リポジトリを配置したいと考えています。--bare --shared リポジトリをローカルに作成し、SCP ごとにサーバーにコピーしました。ここで、SSH URL ごとにこのリポジトリを複製したいと考えました。私は試した

ssh://USERNAME@HOST/folder1/folder2/gifolder.git
ssh://USERNAME:PASSWORD@HOST/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:PORT/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:/folder1/folder2/gifolder.git

上記のいくつかの組み合わせ。しかし、Gitは常に言う

"fatal: The remote end hung up unexpectedly"

USERNAMEとPASSWORDを使用してSSHごとにHOSTに接続できますが。

やりたいように git を操作することは可能ですか、それともまったく別の方法でセットアップする必要がありますか?

アップデート:

Putty の代わりに OpenSSH を使用するように Git 拡張機能を構成しましたが、OpenSSH は「クローン」の後にパスワードの入力を求めます。正しいパスワードを入力すると、次のエラーが表示されます。

bash: git-upload-pack: command not found

(OpenSSH は、何か他のものを入力するときにパスワードを再入力する必要があるため、サーバーに接続しているようです)。今、私はその新しい問題を解決する必要があります。まず第一に、サーバーに git をインストールする権限がありません。gitをインストールせずに「git-upload-pack」と「git-receive-pack」を利用可能にすることはできますか?

再度、感謝します

UPDATE2 - 解決策:

解決策は、リモートのリポジトリ ディレクトリを SSH/SFTP ごとのローカル ディレクトリとして統合することでした。そのためにhttp://www.expandrive.com/を使用しています。ありがとう

4

2 に答える 2

4

ssh が実行されている間、リモートのパスにバイナリgit-upload-pack & git-receive-packが必要です。

このようにリポジトリ内のすべてのリモートリンクに対してそれらを構成しない場合

git config remote.origin.uploadpack /somepath/git/git-upload-pack
git config remote.origin.receivepack /somepath/git/git-receive-pack

originはリモートです。

于 2012-09-07T19:19:21.013 に答える
3

ssh 接続を確立するときにパスワードを入力する必要はありません
。公開鍵が ~/.ssh/authorized_keys で公開されている場合は、これで十分です。

秘密鍵がパスフレーズで保護されている場合、パスワードが必要になることがあります (その場合は、「ssh デーモンがパスワードを要求する」を参照してください。パスワードが必要になる場合がありますssh-agent)。

それ以外の場合は、「Unable to Git-push master to Github」を参照して、次のような ssh デバッグのヒントを確認してください。

  • ssh -vvvT ssh://USERNAME@HOST(特に Windows を使用している場合は、HOME が定義されていることを確認してください。「Heroku プッシュ マスターのssh問題」を参照してください)
  • サーバー上の sshd のログを確認します (たとえば で/var/log/secure、Os によって異なる場合があります)。

Openssh はより安全な選択 (および mysysgit にパッケージ化されている) ですが、それでも %HOME% を適切に定義する必要があります。

繰り返しますが、ここでssh -vvvT役立ちます。

まず第一に、サーバーに git をインストールする権限がありません。git をインストールせずに" " と " " を利用
可能にすることはできますか?git-upload-packgit-receive-pack

いいえ、できません。

gitsshd(sshサーバー上で実行されているデーモン)のパスにインストールする必要があります。


OP andineupertはコメントで締めくくられています。

サーバーにgitをインストールする必要があるため(できませんでした)、SSH/SFTPごとにリモートリポジトリディレクトリをローカルディレクトリとして統合する必要がありました。
今、すべてが機能しています。

于 2012-08-01T11:55:49.697 に答える