3

以前はMercurialコマンドラインインストールを使用していましたが、デフォルトの ssh クライアントと~/.sshのキーの場所で問題なく動作しました。

新しいラップトップにインストールしTortoiseHgました。これで、リモート リクエスト ( hg pullhg incomingなど) によってPuTTY Fatal Errorが生成されます。

切断: サポートされている認証方法がありません (サーバーが送信: publickey)

ここに画像の説明を入力

ssh 経由でリポジトリに直接アクセスしようとすると、非常に似た結果になります。 ssh -vT git@bitbucket.org

この問題はPageant( plink) を使用して解決できる可能性があります: これを実行してパテ キーを追加するか、ページェント( plink ) を Mercurial 構成ファイルに追加します。

しかし、デフォルトのsshキーの場所のみを使用して、ページェントやplinkなしで古い方法で作業する方法を探していますか?

4

3 に答える 3

10

Mercurialgitは独自の ssh クライアントを提供していないため、2 つの回避策を除いて、Plink と Pageant を使用することが必須です。

  1. Mercurial 設定( %USERPROFILE%\.hgrcまたは%USERPROFILE%\Mercurial.ini )で明示的なキー参照を使用して、 TortoisePlinkを ssh クライアントとして使用します。

    [うい]

    ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -ssh -i %USERPROFILE%.ssh\id_rsa.ppk

  2. gitまたはcygwin(または Windows で ssh を使用するその他の方法) をインストールしている場合、Mercurial 構成でサード パーティの ssh クライアント ポインティング パスを使用することができます。

    [うい]

    ssh = "C:\Program Files (x86)\Git\bin\ssh.exe"

    # また

    # ssh = "PATH_TO_ANY_OTHER_SSH_CLIENT_LIKE_CYGWIN"

私は両方の方法を試しました-それらはうまく機能します。

gitPC で分散ツールをメインsshエージェントとして使用しているため、2 番目のものを使用します。ssh最初のオプションは、PCに代替手段がない場合に適しています。

:

  • 場合によっては、パーサーに基づいて、iniファイル内のパスが文字のエスケープ処理で解析されるため、\が次の記号をエスケープすることがあります。この場合、パスはC:\\Program Files (x86)\\Git\\bin\\ssh.exe (二重スラッシュ付き) のようになります。
  • フルパスを指定せずに使用する %PATH% 変数に git\bin ディレクトリがありますsshこの場合、Mercurial 構成では、次のように使用できます。

    [うい]

    ssh = ssh

于 2015-08-13T08:46:51.417 に答える
3

いいえ、 TortoiseHg 以外のソフトウェアをインストールまたは使用せずにこれを行う方法はありません。

Mercurial は SSH 自体を実装していません。Unix ではssh、適切なクライアントが既にインストールされていることを期待して実行するだけです (大部分の Unix システムには SSH クライアントがプリインストールされているか、比較的簡単にインストールできるため、これは安全な賭けです)。Windows では、これは妥当な仮定ではないため、TortoiseHgは client をバンドルします:

SSH は対称的なピアツーピアの安全なトンネルです。SSH クライアントとサーバーには独自のキー管理システムがあるため、SSH を使用する場合、Mercurial はパスワード プロンプトに関与しません。これは Windows では問題があるため、TortoiseHg は TortoisePlink SSH クライアントをその Windows インストーラーにバンドルします。TortoisePlink は、ホスト キーの承認とパスフレーズ プロンプトにダイアログ プロンプトを使用する Plink SSH クライアントのポートです。TortoisePlink (TortoiseSVN プロジェクトによって開発された) は、Pageant キー エージェントを含む、Plink ツールチェーンの一部である他の SSH ツールを使用できます。

TortoisePlink を使用しない場合、TortoiseHg が接続できる SSH クライアントがない可能性が高くなります。また、Pageant を使用しない場合は、キーを保存するシステムがありません。TortoisePlink は~/.ssh、Windows のやり方ではないため、使用しません。

于 2015-08-12T20:39:29.317 に答える