秘密のRSAキーの場所をGit for Windowsに伝えるにはどうすればよいですか?


487

私のGitのセットアップは、Linux上で正常に動作が、私は、Windows(WindowsとのためのGitを使用しての下で物事を設定しようとすると、TortoiseGit)や、より良いまだ、どのように伝えるために(私のプライベートSSHキーを配置する場所を、私は知らないssh、それはだところ位置)。Git for Windowsのインストール中に標準のssh.exeオプションを使用しています。サーバーで(RSAの代わりに)パスワード認証を許可すると、セットアップは正常に実行されます。


私は同じ問題を抱えています。「Git For Windows」とともにインストールされる「Git Bash」プログラムを使用して「root」として公開鍵を使用して開発ボックスにsshできますが、「git」としてログインできません。 「ルート」から「git」ユーザーに「authorized_keys」ファイルをコピーし、所有者と権限を正しく設定しているにもかかわらず、キー。「root」がまったく同じ「authorized_keys」ファイルで動作するときに「git」としてログインできないのはなぜですか。「git」の代わりに、「root」で機能するものとまったく同じ秘密鍵をすべて渡し、パスワードを要求します。ちなみにこれはCentos 5.5サーバーです。

@fuzzy lollipop:gitユーザーのauthorized_keysファイルに適切な権限がありますか?chmod 600であり、gitユーザーが所有している必要があります。それは、rootユーザーが所有しています場合は、その文句を言わない仕事
ダン・マクレーン

はい、すべてのファイルとディレクトリが正しい所有者と権限です

回答:


486

Git Bashの場合

あなたがmsysgitを実行している(私はあなたであると仮定しています)とGit Bashを実行しようとしている場合(TortoiseGitよりもお勧めしますが、GUIよりもCLIに傾いています)、Gitのホームディレクトリを把握する必要がありますBashを起動してから入力しますpwd(Windows 7では、C:\Users\phsr私はそう思います)。Git Bashにいる間に、次のことを行う必要がありmkdir .sshます。

ホームディレクトリとその.ssh下のフォルダーを作成したら、PuTTYgenを開き、以前に作成したキー(.ppkファイル)を開きます。キーを開いたら、Conversions -> Export OpenSSH keyそれを選択してに保存しHOME\.ssh\id_rsaます。その場所でキーを取得すると、Git Bashはキーを認識して使用します。

注:コメントは、これがすべての場合に機能するとは限らないことを示しています。OpenSSHキーをProgram Files\Git\.ssh\id_rsa(またはProgram Files (x86)\Git\.ssh\id_rsa)にコピーする必要がある場合があります。

TortoiseGitの場合

TortoiseGitを使用する場合は、paceyの指示に従って SSHキーを設定する必要があります。TortoiseGitを使用しているすべてのリポジトリに対してこれを行う必要があります。


4
tortoisegitのpaceyの指示は、リポジトリを取得するまで機能しません(リポジトリを操作しない限り「リモート」構成設定は表示されないため) t起源からクローンを作成するために自分自身を認証します。トリッキー!
キロタン

43
GitBashを~/.ssh/id_rsa使用すると、ファイルをコピーする必要があることがわかりました。Program Files\Git\.ssh\id_rsaこれは少し混乱しますが、IntelliJとWindows cmdはキー認証を使用するgitリポジトリにプッシュできます。
JP。

7
同様に。git-for-windowsをインストールしたばかりで、cmd.exeから実行しています。ファイルをに入れる必要がid_rsaありid_rsa.pubましたc:\program files (x86)\Git\.ssh.sshDIRはすでに存在していました。ありがとう、JP。
-Cheeso

5
2番目の段落は黄金色でした。:)
ビョルン

4
@Damon:id_rsa拡張子なしにする必要があります。それはファイル名であり、ディレクトリではありません
ダンマック

107

Git for Windowsに付属のビルトインSSHクライアントを使用して、Git SSHクライアントがキーを見つけることができるように、HOME環境変数を設定する必要があります。

たとえば、Windows Vistaのインストールでsetx HOME c:\Users\admin\は、コマンドラインで発行することによりこれを行います。

私の一日を作り、あなたの秘密鍵がパスワードで保護されていないという条件でGitの問題を修正しました。ssh-agentを使用する場合は、おそらくssh-agent cmd.exe(私は一度もやったことがありませんが)と通常どおりssh-addを実行できます。

ウィンドウを点滅させないために、すべてのGit / SSHツールはcmd.exeから実行されることに注意してください。

これが正しく機能しない場合は、おそらくGIT_SSHを調整することでplinkを使用できます。すべてのSVN + sshチュートリアルを参照してください。これは基本的にセットアップに必要な配管と同じです。


16
これは、git bashではなくWindowsコマンドプロンプトを使用しようとしているため、私が探していたものです。
ジョンルイス

素晴らしく、簡単な修正ですが、これなしで理解するのは難しいでしょう!
thaddeusmt

同様に重要なのは、HOME =とc:\の間に空白がないことです。Octの解決策は私にとってはうまくいきました。:
ルッツ

2
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use 代わりにcmd`。
trejder

2
+1GIT_SSH=c:\pathto\plink.exe
ニックグレアリー

54

TortoiseGitのキーの場所は次の方法で指定できます。

  • エクスプローラーウィンドウを開きます。
  • コンテキストメニューを開き、TortoiseGit設定に移動します
  • 現在開いているウィンドウで、Gitリモートに移動します
  • 対応する入力ボックスでPuTTYキーへのパスを設定します。

スクリーンショットは次のとおりです。

ここに画像の説明を入力してください


8
あなたが他のフォーマットから「.ppk」フォーマットにあなたの秘密鍵を変換する必要がある場合はさらに、あなたは従うことができますTHIS
タリク・M Nasim

それは私のために働いた。
マキシムエリゼエフ14

6
Git>リモートは、リポジトリを正常に複製した場合にのみ表示されます。
スティーブピッチャーズ

5
もっと簡単な解決策は、すべてをgitで正しく動作するように設定し(openSSHを使用)、次にgitが使用するssh.exeを使用するようTortoiseGitに指示することです。stackoverflow.com/a/33328628/318317を参照してください。この方法では、これを一度修正するだけです。
ダニエルローズ

50

これまでの答えはどれもうまくいきませんでした。これが最後に私のために働いたものです。入力する内容がわかっていれば、実際にはかなり簡単です。PuTTYは必要ありません。

  • Git Bashプロンプトを開きます
  • 「ssh-keygen」と入力します
    • デフォルトの場所を受け入れる
    • 空のパスフレーズを選択します(すべての質問に対して「Enter」を押すだけです)
  • 次に、公開キーをサーバーにコピーします。例:scp〜/ .ssh / id_rsa.pub someuser@someserver.com:〜

それはあなた自身のコンピューターでやったことです。今、ssh宛先サーバーに、その後の作業

mkdir -p ~/.ssh
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
rm ../id_rsa.pub

それでおしまい!できました!Git Bashから、次を実行してテストします。

ssh someuser@someserver.com ls

Gitサーバーのホームディレクトリにファイルがリストされていれば、完了です。

GitHubの場合、サーバーへのシェルアクセスはありませんが、Webサイトを使用してキーをアップロードできます。そのため、「今すぐサーバーにコピーする」ために、次のようにします。

  • Git Bashで「cat〜/ .ssh / id_rsa.pub」と入力し、結果を選択して、クリップボードにコピーします。
  • GitHub Webサイトで、[アカウント設定]、[SSHおよびGPGキー]に移動し、[新しいSSHキー]をクリックして、キーを貼り付けます。

8
パスフレーズなしでキーを作成しないでください。秘密鍵のデフォルトの場所を誰もが知っていることを除いて、パスワードをテキストファイルに入れるようなものです。
-GregB

14
あなたは間違った質問に答えています。Qは、既存の秘密キーを指す方法です。
オランウテック

7
@GregB、私はこれを次のように見ます。パスワードなしのキーを作成するサーバーはラップトップと同じくらい安全で、ラップトップのセキュリティ境界の拡張です。私のホームディレクトリは暗号化されているので、実際にはさえありません;-)それで、私のラップトップ上の暗号化されたホームパーティションと同じくらい安全です。(もちろん、あなたの意見とは異なる場合があります!)
ヒューパーキンス

3
@GregBパラノイアに陥らないでください!:]もちろん、パスワードで保護されたキーを使用することは、パスワードなしで使用するよりもはるかに安全ですが、パスワードなしのキーはパスワードをテキストファイルに保存するのと同じくらい簡単だと主張するのは明らかな誤りです。ユーザーがパスワードで保護されたキーを使用することを奨励する多くのガイドを見てきましたが、パスワードなしでそれらを使用することはまったく安全ではないという主張を見たことはありません。さらに、一部のシステムは、ユーザーが入力したキーのパスワードを記憶するソリューションをサポートせず、キーが使用されるたびにパスワードを要求します。この場合、SSHキーを使用しても意味がありません。
trejder

4
元の質問から逸脱した会話のために、SSHキーはパスワードよりも確かに暗号的に安全ですが、そのセキュリティはSSHキーを暗号化しないことで危険にさらされます。私の個人的なアプローチは、SSHエージェントを使用して1日の始めにキーをロック解除することです。SSHエージェントは、1日を通してパスワードを再入力する必要がないように、復号化されたキーをメモリに保持します。@Hugh Perkinsがコメントしているように、私も言い換えますが、皆さんはセキュリティ要件を私/私たちよりもよく知っています:)。
GregB

38

OpenSSHツールでmsysgitを使用している場合は、キーを指す~/.ssh/id_rsaGit構成を作成するか、作成する必要があり~/.ssh/configます。

正しいユーザー名とデフォルトキー以外のキーを使用するBitbucketのGit構成の例を次に示します(SSH接続用に1つのキーを、Gitアカウント用に別のキーを保持する場合)。

〜/ .ssh / config

Host bitbucket.org
    Hostname bitbucket.org
    User git
    IdentityFile /C/keys/yourkey.key

Git Bashで2つのコマンドを実行すると、キーを現在のセッションのssh-agentに追加して、キーのパスワードを繰り返し入力する必要がなくなります。

eval `ssh-agent`
ssh-add /C/keys/yourkey.key

1
私はこれを行いましたが、github.comの場合:ホストgithub.com IdentityFile〜/ .ssh / github_rsa
Sarah Vessels

1
あなたのパスにスペースを持っている場合は、引用符を使用する必要があります。IdentityFileに「/ C /マイキー/キー」
R03

これは私が速く、他のPCからのキーに存在して接続許可されたので、私は、この方法を好む
キリルGusyatin

私の.gitconfigにはセクションがあります。どのセクションの下にこれらのホストを配置する必要がありますか?
スティーブYakovenko

16

%HOME%=%HOMEPATH%を設定しました

これには、システムにログインしているすべてのユーザー(各ユーザーが個別の.sshフォルダーを取得する)で作業できるという利点があります。

Vistaの場合:

  1. コンピューターを右クリック
  2. プロパティを選択
  3. [システムの詳細設定]をクリックします
  4. 環境変数をクリックします
  5. 下部のセクション(システム変数)で[新規]をクリックします
  6. 変数名タイプの場合:HOME
  7. 可変パスタイプの場合:%HOMEPATH%
  8. OKをクリック

6
私の場合、HOME =%USERPROFILE%
-igor

1
%HOMEPATH%ドライブ文字が含まれていないことに注意してください。ソースがオンになっC:ていない場合は、先頭C:にを追加する必要があります%HOME%
グレアムペロー

set %HOME%=%HOMEPATH%私のために働いた!ありがとうございました!!
teng

7

ワークステーションのSSHエージェントに秘密鍵を追加する必要があります。これをどのように達成するかは、使用しているgitクライアントによって異なりますが、puTTYとその関連エージェント(ページェント)があなたのためにトリックを行うかもしれません。公式のバイナリとソースへのリンクは次のとおりです。

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


前述のとおり、Windows用のGitを使用しており、パテの代わりにssh.exe(gitでパッケージ化)を使用しています。秘密鍵を追加するための標準的なプラクティスが必要です。どうすればよいかわかりません。ソフトウェアを切り替えると実際にログインできるようになりますが、標準のGitセットアップでそれを行う方法が必要です。
バイナリ有機

申し訳ありませんが、Windowsでは動作しません。Linuxのみです。ただし、キーはSSHエージェント内にある必要があります。それらの行にagent.exeまたは何かがありますか?
Declan Shanaghy

1
ええ、セットアップはLinux側のケーキでした。しかし、残念ながらWindowsで動作させる必要があります。Windowsボックスのgit / binフォルダーにいくつかのssh関連の実行可能ファイル(ssh、ssh-add、ssh-agent、ssh-keygen、およびssh-keyscan)がありますが、それらの作成方法がわかりません何でもする。cmdウィンドウを点滅させてすぐに開閉します。私は困惑しています。
バイナリ有機

8
Pageantは本当に問題を解決します-スタートメニューのスタートアップフォルダー(C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)にを指すショートカットがある"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"ので、スタートアップ時にSSHキーが読み込まれ、これによりGITが "正常に動作します":o)
Owen Blacker

@OwenBlacker OMFG!あなたは間違いなくこのコメントをフルサイズの回答として書くべきです!これが唯一の解決策であり、実際に私を助け、私の問題を解決しました!残念、+ 1しか与えられない!:]
trejder

6

私の場合、DockerコンテナでGit for Windowsを使用していましたwindowsservercore

私のGitはChocolateyによってにインストールされましたC:\Program Files\Git

C:\Program Files\Git\etc\ssh\ssh_configこれでファイルを更新する必要がありました:

Host example.com
   Identityfile ~/.ssh/id_rsa

それから私はからキーを使用することができました C:\Users\<user>\.ssh\id_rsa

Git for WindowsをOpenSSH for Windowsとともに使用している場合。Gitはまだ独自のを使用していsshます。

さらにssh-keyscan host.com > known_hosts、OpenSSHからの使用を計画している場合stdoutkeyscan(Windowsの)からの出力をパイピングするとエンコードがUCS-2に変更されますが、OpenSSHはUTF-8のみを読み取ることができるため、注意してください!そのため、必ずknown_hostsファイルのエンコードを変更してください。


これは役に立ちましたが、id_dsaキーを使用している人は、ホストの下に「PubkeyAcceptedKeyTypes ssh-dss」を追加する必要があります。
マイケルルッソ

4

OK、の提案を見ました.

しかし、パブリックフォルダーにSSHプライベートキーを配置するのは良い考えだとは思わなかったので、knownhostの場所を探し始めました。

したがって、SSHキーを正しく保護するには、次のディレクトリにキーを配置する必要があります。

Windows 7、8、および8.1 32ビットの場合:

C:\ Users \\ AppData \ Local \ VirtualStore \ Program Files \ Git \

Windows 7、8、および8.1 64ビットの場合:

C:\ Users \\ AppData \ Local \ VirtualStore \ Program Files(x86)\ Git \


これは私のWin7マシンで最も簡単なソリューションでした。あなたのように、私は探しましたknown_hosts。案の定、それはでしたC:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh。キーファイル(id_rsa)をそのディレクトリに配置することで、sshは文句なしにそれを見つけることができました。私は少し読みました-これは、Windowsが禁止された領域(「C:\ Program Files \」など)に書き込もうとする(レガシー)ソフトウェアを処理する方法ですので、GitのsshはVirtualStoreディレクトリ、Windowsに書き込むことを完全に認識しません透過的に処理しています。少なくともこれらのファイルはユーザーのものです!
-DaveGauer

4

Pageantを使用するのが最も効率的な方法です。これは、すべてのプッシュではなく、セッションの開始時にパスフレーズを1回だけ書き込むことができるためです。ここでの回答はすべて短すぎたため、詳細なガイドをここに投稿します。

  1. ダウンロードpageant.exeputtygen.exeputty.exeplink.exeはPuTTYのウェブサイトから。それらをC:\puttyToolsディレクトリに配置します。
  2. を実行しますputtygen.exe
  3. ボタンをクリックしますGenerate
  4. プログラムが要求するように、進行状況バーがいっぱいになるまで、ウィンドウの上部でマウスを動かします。
  5. パスフレーズを提供し、後続のテキストボックスで繰り返します。
  6. [秘密キーを保存]をクリックします。これらを保存する通常のディレクトリは%USERPROFILE%\_ssh(私のコンピューターではにマップされますC:\Users\andres\.ssh\)です。キーを何と呼ぶか​​は関係ありませんが、デモンストレーションの目的で、キーと呼びますgithub.ppk。このファイルの拡張子は.ppkである必要があります。
  7. PuTTYgenの一番上のテキストボックスにラベルPublic key for pasting into OpenSSH authorized_keys fileを付けたテキストをコピーし、GitHubの設定の新しいSSHキーに貼り付けます。キーが置かれているマシンを説明するタイトルを付けます(例:「ラップトップの仕事」)。
  8. を実行するpageant.exeと、新しいシステムトレイアイコンが表示されます。
  9. アイコンを右クリック->キーを追加。
  10. ppkファイルを見つけて、パスフレーズを入力します。
  11. (アプリケーションを探し経由して、これらの新しいユーザー環境変数を作成してEnvironいますWindowsMenuによるEdit environment variables for your account):GIT_SSH = "C:\puttyTools\plink.exe"SVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
  12. putty.exeを開き、Gitリポジトリをホストするホストに接続してみます。たとえば、SSH経由でgithub.comに接続しようとすると、サーバーの指紋を受け入れるかどうかを確認するダイアログが表示されます。[はい]をクリックします。
  13. MINGW64Gitコンソールの新しいインスタンスを実行し、コマンドを書いて環境変数があることを確認しますenv | grep -i ssh
  14. あなたはすべて準備ができているはずです。ホストからGit + SSHプロトコルでクローンを作成してみてください。

(もともと私は1つにまとめ、これら2つのガイドから抽出された:どのようにWindowsのセットアップのGitをすると、パテのPlink /ページェントを使用するためにはMinGW-W64 + MSYSを構成します。)


3

GitHub for WindowsとGit GUI for Windowsを混在させると、Git GUIがユーザー名とパスワードの入力を求め続けるという問題が発生する場合があります。これを解決するには、リモートURL https:(GitHub for Windowsが作成するもの)をGitプロトコルに変更します。で.git設定ファイルのディレクトリを、見つけます:

[remote "origin"]
   url = https://github.com/**username**/**reponame**.git
   fetch = +refs/heads/*:refs/remotes/origin/*

次のように変更します。

[remote "origin"]
    url = git@github.com:**username**/**reponame**.git
    fetch = +refs/heads/*:refs/remotes/origin/*

ええ、それは非常に迷惑です。Windows GUIのgithubを使用してリポジトリを複製するのは自然で簡単ですが、git shellの外でgit cuiを使用すると失敗しました。私は... Gitのシェルでのgitコマンドがhttps URLでどのように機能するか疑問に思う

SSHのプレフィックスは常にgit@{SERVER URL}ですか?
nmz787

はい、私が見た限り:)
IDisposable

すでにこれを持っていた-それでも私にいつも尋ねる
イアングレインジャー

3

ファイルの標準の場所はです%USERPROFILE%\.ssh

%USERPROFILE%Unixの$ HOMEに相当します(通常はのようなものにマップされますc:\users\youruserid)。

Gitに付属しているSSHコマンドを使用している場合、これは標準のコマンドラインUnixスタイルのツールです。ここで私のスクリプトのようなものを使用してすべてのシェルでssh-agentを操作できます。


将来の読者にとって、はと同等で%USERPROFILE% is the equivalent of $HOMEはありません$HOME。Windowsに移植された多くの悪い動作のLinuxアプリは、2つを同じものとして扱いますが、同じものとして扱うべきでありませ
ミカゾルトゥ

ミカ、その意図の違いを教えてもらえますか?また、意図が異なっていても、すべてのツールが一方を他方として使用すると、効果的に同等になりませんか?
エリックブレード

Linux %USERPROFILE%と同じ方法でWindowsで使用するツール$HOMEは、Windows開発に関する十分に文書化されたベストプラクティス/推奨事項に違反しています(MSが以前に公開し、時間の経過とともに更新されます)。これを行う多くのツールがありますが、それらに従うべき引数は、「Xがプールにいるので、私たちもそうすべきです」という引数によく似ています。 USERPROFILEユーザー作成/保存するドキュメント保存する場所です(ダイアログの保存など)。 APPDATAユーザーごとの構成データ用です。 LOCALAPPDATAユーザーごとのキャッシュと大きなファイル用です。 PROGRAMDATAマシン全体の構成とキャッシュ用です。
ミカゾルトゥ

一般に、USERPROFILEで誤動作するツールは、Linux開発者が作成してWindowsに移植したツールのみです。開発者として、おそらくこれらの多くを使用するので、「誰もがやっている」ように感じますが、開発ツールエコシステムの外では、ほとんどのWindowsアプリケーションは実際には良き市民です。マイクロソフトでさえ、物事を正しい場所に置いていないというミスをすることがあります(彼らは巨大な会社です)が、一般的に指摘すると、問題を解決し、OSガイドラインに従うよう努力します。
ミカゾルトゥ

1
(申し訳ありませんが、StackExchangeのコメントの文字数制限)。ここでは、フォルダの詳細と、それぞれに含まれる内容の簡単な説明を示します。そこ他のリソースは、より多くの消耗ブログの記事を含め、同様ですが、これが最も技術的な正確さを提供しています:technet.microsoft.com/en-us/library/cc749104(v=ws.10).aspx
ミカZoltu

2

私は同様の問題を抱えていましたが、ここでの答えはどれも問題を解決しませんでした。結局、私のキーペアは空のパスフレーズを使用して最初に生成されました。(私は知っている、愚かな。)

新しいキーペアを作成し、公開キーをGitHubにアップロードすると、再び機能し始めました。


1
この。うーん さようなら2時間
スクープ


1

キーのパスとキーファイルの名前の両方を指定できます(Ubuntuの場合)。例えば:

ssh -i /home/joe/.ssh/eui_rsa

これにより問題が完全に解決され、キーを好きな場所に保存できます。
-DaveGauer

質問は、特に窓に関するものでした。Ubuntuマシンでgitをこのように動作さGIT_SSH_COMMANDせていますが、Windowsマシンで何を設定するかわかりません。
mjaggard

1

Pageant(PuTTYバンドルで提供されるSSHエージェント)が問題を解決します。

スタートメニューの[スタートアップ]フォルダー(C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)にを指すショートカットがあり、"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"スタートアップ時にSSHキーが読み込まれるため、Gitが "正常に動作"します:o)


4
これを機能させるには、他にもいくつかの正しい設定が必要だと思います(GIT_SSHがTortoisePLink.exeに設定されているなど)?:-(
サイモンイースト

Pageantから「ファイルを開くことができません」というメッセージが表示されます:( TortoiseGitで使用しているため、正しく設定されていることがわかります:(
Ian Grainger

1

多くの回答がこれを言っていますが、私にとっては十分に速くありません!

msysを使用したWindows(標準のWindowsコンソール) C:\Users\{you}\.ssh\id_rsa

基本的に、インストールされたキーをスキャンすることはありません(少なくとも新しいラップトップでは)ので、特に必要です id_rsa

私は、Windows 10 64ビット用のRuby MSYS CLIでいくつかのプライベートな作業リポジトリをクローンしたいというこれに遭遇しました


0

Windows 7/8を使用している場合は、C:\ Users \ Your_User_Name.sshを確認する必要があります。ここにid_rsaファイルをコピーして貼り付けるだけで、そのまま使用できます。


0

WindowsでSSHを使用する際に犯した間違いの1つは、Git Bashクライアントを介してキーを使用しようとしたときに、〜/ .ssh内のすべてのファイルが間違ったアクセス許可であったにもかかわらず、問題。

テストとして、〜/ .sshディレクトリのすべてをchmod 600に設定したことを確認してください。


0

Windowsマシンに必要な権限があり、ポリシーで許可されている場合、特にLinuxの経験があることを考慮して、Cygwin(https://cygwin.com/)をインストールすることをお勧めします。Cygwinは、他のLinux / Unixマシンの場合と同様に、sshキーを処理できるようにします。また、LinuxのほとんどすべてのCLIツールへのアクセスを提供します。


1
コメントとしてこのような提案をすることは完全に合理的です。しかし、この質問はWindowsのgitを明示的に要求しているので、これを回答として投稿することに対する下票を期待すべきです。
ロブ

0

TortoiseGitでは、リポジトリのクローンを作成するときに使用するキーを指定できます。「Load Putty Key」をチェック.ppkして、スクリーンショットのようにファイルを参照します。https://i.stack.imgur.com/lAyzT.png


無効にした場合、チェックがSettings... -> Network -> SSH clientに設定されているC:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
ニキータBosik


0

Declanの回答に対するコメントを読んで、最初にコマンドプロンプトを開き(スタート→ 実行cmd)、そのgit / binフォルダーに移動してを実行してみてくださいssh-keygen。理論的には、RSAキーが生成され、適切なディレクトリに配置されます。次に、それを見つけて、公開鍵を世界と共有する必要があります。

ウィンドウが「点滅」するのは、Windowsがプログラムを実行し、実行時にコマンドプロンプトを閉じて、本当に出力が必要になったときに終了したためです。


0

WindowsでGit Gui v0.17を使用して、次のメニューコマンドをクリックしました:[ ヘルプ ] →[ SSHキーの表示 ] 。

Your OpenSSH Public Keyというタイトルのダイアログが表示されました。キーを生成し、クリップボードにコピーしました。その後、ステップ3以降のgithelpの setup-sshの指示に従い続けました。その後、Git GuiはGitHubと静かに通信しました。資格情報を入力する必要はありません。


0

私のWindows 7システムでは、Git Guiはuserprofile/.sshフォルダー内またはより具体的にはRSAキーを探しますc:/users/yourusername/.ssh/

私のセットアップで難しいのは、hostmonsterの共有ホストにキーを受け入れさせることでした。私がそれを機能させる唯一の方法は、Git Guiを使用してキーペアを作成し(パスワードなし)、コントロールパネル、ssh、管理キーを介して公開キーをコピーして貼り付けることでした。

初めに開始するには、メニューに行くことによってGitのGUIでキーを作成する必要があり、ヘルプ表示SSHキー、そしてキーを生成します。これで、.sshディレクトリに2つの新しいキーができました。.pubファイルを開き、内容をコピーします。

共有ホストのコントロールパネルにログインし、SSHSSHキーの管理、およびキーのインポートに進みますパブリックボックスに貼り付け、拡張子を付けずに正しい名前を付けてくださいid_rsa。ここで、認証管理リンクを使用してキーを認証する必要があります。これにより、キーがauthorized_keysファイルに連結されます。

これで、Git GuiとGit Bashは、パスワードを入力しなくてもSSHを使用してプッシュできるようになります。奇妙なことに、Linuxを実行している自分のサーバー上でGit BashとGit Guiを介してSSHを使用してプッシュすることができました。これを思いつくのに何時間も試行錯誤が必要だったので、これが誰かの助けになることを願っています。


0

WindowsでGitコマンドラインを使用している場合、次のようにできます。

を開いcmd.exeて実行しsetx HOME c:\PATH_TO_PRIVATE_KEYます。

.ssh内部に新しいフォルダー、(存在しない場合)c:\PATH_TO_PRIVATE_KEYを作成し、id_rsaファイル(プライベートキー)をそこにコピーします。

できた これで、Gitコマンドラインを通常どおり使用できます。


0

私のmsysgit OpenSSL / Bash Gitエクスペリエンス(PuTTYのplinkではありません)では、.ssh/フォルダーの検索順序は次のようになります。

  1. %HOME%/.ssh/
  2. %HOMEDRIVE%%HOMEPATH%/.ssh/
  3. %USERPROFILE%/.ssh/

したがって、なぜHOME他の人の1人があなたが期待するものでない場合、非常に多くの人々が設定を提案します。さらに重要なことは、自分で確認できることです。ssh -v次のように公開鍵認証を使用するサーバーへの使用をデバッグします。

$ ssh -v git@github.com
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /d/.ssh/config
...
debug1: identity file /d/.ssh/identity type -1
debug1: identity file /d/.ssh/id_rsa type 1
debug1: identity file /d/.ssh/id_dsa type -1
...
debug1: Next authentication method: publickey
debug1: Trying private key: /d/.ssh/identity
debug1: Offering public key: /d/.ssh/id_rsa
..
Hi kcd83! You've successfully authenticated, but GitHub does not provide shell access.

私たちsshはあいまいなドライブで検索を見つけましたが、以前の答えはどれも私たちが見たものを説明するようには見えませんでした。

時々 、%HOMEDRIVE%%HOMEPATH%マップされたネットワークドライブ(たとえば、あるH:/ネットワーク/ファイルサーバに問題がある場合、不要な故障の原因となる)場合でも、%USERPROFILE%/.sshあるC:/Users/Username/.sshとローカルのキーを持っています。リモートホームドライブを見ること%HOME%%USERPROFILE%停止するように設定します。


0

PuTTY Agent(pageant)をロードし、PuTTYで生成したサーバーの秘密鍵を追加することもできます。

Gitはこれを認識し、それをプッシュ/プルに使用します。


0

Windowsでは、必要に応じてTortoiseGitとGit Bashを使用していました。TortoiseGitにすべてを追加しましたが、正常に機能しましたが、キーが正しいディレクトリにあったとしてもGit Bashはそれを取得しませんでした。Git Bashからこれをしなければならなかったことが判明しました:

ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa

もちろん、キーを配置する場所へのパスを変更することもできます\\。セパレータとして使用することを忘れないでください。


0

Git for Windowsを使用している場合、SSHキーが生成されたら、SSHキーをssh-agentに追加する必要があります。

新しいSSHキーの生成とそれをssh-agentに追加するをご覧ください。

eval $(ssh-agent -s)

// Tell where the keys are located

ssh-add ~/.ssh/id_rsa

サーバー障害へようこそ。この質問には、数年前に広く受け入れられた回答がすでにあります。新しい質問や大幅に改善できる質問を探し続けてください。
マシューウェットモア

1
広く受け入れられている答えは私にとってはうまくいきませんでしたが、これはうまくいきました。私はそれは鍵がSSHエージェントに追加する必要があります知っている誰かを助けるかもしれないと信じて、それは命令の2linesで行うことができます
Matoeil
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.