私のGitのセットアップは、Linux上で正常に動作が、私は、Windows(WindowsとのためのGitを使用しての下で物事を設定しようとすると、TortoiseGit)や、より良いまだ、どのように伝えるために(私のプライベートSSHキーを配置する場所を、私は知らないssh
、それはだところ位置)。Git for Windowsのインストール中に標準のssh.exeオプションを使用しています。サーバーで(RSAの代わりに)パスワード認証を許可すると、セットアップは正常に実行されます。
私のGitのセットアップは、Linux上で正常に動作が、私は、Windows(WindowsとのためのGitを使用しての下で物事を設定しようとすると、TortoiseGit)や、より良いまだ、どのように伝えるために(私のプライベートSSHキーを配置する場所を、私は知らないssh
、それはだところ位置)。Git for Windowsのインストール中に標準のssh.exeオプションを使用しています。サーバーで(RSAの代わりに)パスワード認証を許可すると、セットアップは正常に実行されます。
回答:
あなたが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を使用する場合は、paceyの指示に従って SSHキーを設定する必要があります。TortoiseGitを使用しているすべてのリポジトリに対してこれを行う必要があります。
~/.ssh/id_rsa
使用すると、ファイルをコピーする必要があることがわかりました。Program Files\Git\.ssh\id_rsa
これは少し混乱しますが、IntelliJとWindows cmdはキー認証を使用するgitリポジトリにプッシュできます。
id_rsa
ありid_rsa.pub
ましたc:\program files (x86)\Git\.ssh
。.ssh
DIRはすでに存在していました。ありがとう、JP。
id_rsa
拡張子なしにする必要があります。それはファイル名であり、ディレクトリではありません
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チュートリアルを参照してください。これは基本的にセットアップに必要な配管と同じです。
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use
代わりにcmd`。
GIT_SSH=c:\pathto\plink.exe
TortoiseGitのキーの場所は次の方法で指定できます。
スクリーンショットは次のとおりです。
これまでの答えはどれもうまくいきませんでした。これが最後に私のために働いたものです。入力する内容がわかっていれば、実際にはかなり簡単です。PuTTYは必要ありません。
それはあなた自身のコンピューターでやったことです。今、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サイトを使用してキーをアップロードできます。そのため、「今すぐサーバーにコピーする」ために、次のようにします。
OpenSSHツールでmsysgitを使用している場合は、キーを指す~/.ssh/id_rsa
Git構成を作成するか、作成する必要があり~/.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
%HOME%=%HOMEPATH%を設定しました
これには、システムにログインしているすべてのユーザー(各ユーザーが個別の.sshフォルダーを取得する)で作業できるという利点があります。
Vistaの場合:
%HOMEPATH%
ドライブ文字が含まれていないことに注意してください。ソースがオンになっC:
ていない場合は、先頭C:
にを追加する必要があります%HOME%
。
set %HOME%=%HOMEPATH%
私のために働いた!ありがとうございました!!
ワークステーションのSSHエージェントに秘密鍵を追加する必要があります。これをどのように達成するかは、使用しているgitクライアントによって異なりますが、puTTYとその関連エージェント(ページェント)があなたのためにトリックを行うかもしれません。公式のバイナリとソースへのリンクは次のとおりです。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
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)
私の場合、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からの使用を計画している場合stdout
、keyscan
(Windowsの)からの出力をパイピングするとエンコードがUCS-2に変更されますが、OpenSSHはUTF-8のみを読み取ることができるため、注意してください!そのため、必ずknown_hosts
ファイルのエンコードを変更してください。
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 \
known_hosts
。案の定、それはでしたC:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh
。キーファイル(id_rsa)をそのディレクトリに配置することで、sshは文句なしにそれを見つけることができました。私は少し読みました-これは、Windowsが禁止された領域(「C:\ Program Files \」など)に書き込もうとする(レガシー)ソフトウェアを処理する方法ですので、GitのsshはVirtualStoreディレクトリ、Windowsに書き込むことを完全に認識しません透過的に処理しています。少なくともこれらのファイルはユーザーのものです!
Pageantを使用するのが最も効率的な方法です。これは、すべてのプッシュではなく、セッションの開始時にパスフレーズを1回だけ書き込むことができるためです。ここでの回答はすべて短すぎたため、詳細なガイドをここに投稿します。
pageant.exe
、puttygen.exe
、putty.exe
とplink.exe
はPuTTYのウェブサイトから。それらをC:\puttyTools
ディレクトリに配置します。puttygen.exe
。%USERPROFILE%\_ssh
(私のコンピューターではにマップされますC:\Users\andres\.ssh\
)です。キーを何と呼ぶかは関係ありませんが、デモンストレーションの目的で、キーと呼びますgithub.ppk
。このファイルの拡張子は.ppkである必要があります。Public key for pasting into OpenSSH authorized_keys file
を付けたテキストをコピーし、GitHubの設定の新しいSSHキーに貼り付けます。キーが置かれているマシンを説明するタイトルを付けます(例:「ラップトップの仕事」)。pageant.exe
と、新しいシステムトレイアイコンが表示されます。Environ
いますWindowsMenuによるEdit environment variables for your account
):GIT_SSH = "C:\puttyTools\plink.exe"
とSVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
MINGW64
Gitコンソールの新しいインスタンスを実行し、コマンドを書いて環境変数があることを確認しますenv | grep -i ssh
。(もともと私は1つにまとめ、これら2つのガイドから抽出された:どのようにWindowsのセットアップのGitをすると、パテのPlink /ページェントを使用するためにはMinGW-W64 + MSYSを構成します。)
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/*
git@{SERVER URL}
ですか?
ファイルの標準の場所はです%USERPROFILE%\.ssh
。
%USERPROFILE%
Unixの$ HOMEに相当します(通常はのようなものにマップされますc:\users\youruserid
)。
Gitに付属しているSSHコマンドを使用している場合、これは標準のコマンドラインUnixスタイルのツールです。ここで私のスクリプトのようなものを使用して、すべてのシェルでssh-agentを操作できます。
%USERPROFILE% is the equivalent of $HOME
はありません$HOME
。Windowsに移植された多くの悪い動作のLinuxアプリは、2つを同じものとして扱いますが、同じものとして扱うべきではありません。
%USERPROFILE%
と同じ方法でWindowsで使用するツール$HOME
は、Windows開発に関する十分に文書化されたベストプラクティス/推奨事項に違反しています(MSが以前に公開し、時間の経過とともに更新されます)。これを行う多くのツールがありますが、それらに従うべき引数は、「Xがプールにいるので、私たちもそうすべきです」という引数によく似ています。 USERPROFILE
ユーザーが作成/保存するドキュメントを保存する場所です(ダイアログの保存など)。 APPDATA
ユーザーごとの構成データ用です。 LOCALAPPDATA
ユーザーごとのキャッシュと大きなファイル用です。 PROGRAMDATA
マシン全体の構成とキャッシュ用です。
私は同様の問題を抱えていましたが、ここでの答えはどれも問題を解決しませんでした。結局、私のキーペアは空のパスフレーズを使用して最初に生成されました。(私は知っている、愚かな。)
新しいキーペアを作成し、公開キーをGitHubにアップロードすると、再び機能し始めました。
:以下の答えはまた、WindowsサービスアカウントからSSHを実行しているこの質問に適用されるSSH越しでのGitとジェンキンス(Windowsサービス)
キーのパスとキーファイルの名前の両方を指定できます(Ubuntuの場合)。例えば:
ssh -i /home/joe/.ssh/eui_rsa
GIT_SSH_COMMAND
せていますが、Windowsマシンで何を設定するかわかりません。
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)
Windowsマシンに必要な権限があり、ポリシーで許可されている場合、特にLinuxの経験があることを考慮して、Cygwin(https://cygwin.com/)をインストールすることをお勧めします。Cygwinは、他のLinux / Unixマシンの場合と同様に、sshキーを処理できるようにします。また、LinuxのほとんどすべてのCLIツールへのアクセスを提供します。
私のWindows 7システムでは、Git Guiはuserprofile/.ssh
フォルダー内またはより具体的にはRSAキーを探しますc:/users/yourusername/.ssh/
。
私のセットアップで難しいのは、hostmonsterの共有ホストにキーを受け入れさせることでした。私がそれを機能させる唯一の方法は、Git Guiを使用してキーペアを作成し(パスワードなし)、コントロールパネル、ssh、管理キーを介して公開キーをコピーして貼り付けることでした。
初めに開始するには、メニューに行くことによってGitのGUIでキーを作成する必要があり、ヘルプ、表示SSHキー、そしてキーを生成します。これで、.ssh
ディレクトリに2つの新しいキーができました。.pub
ファイルを開き、内容をコピーします。
共有ホストのコントロールパネルにログインし、SSH、SSHキーの管理、およびキーのインポートに進みます。パブリックボックスに貼り付け、拡張子を付けずに正しい名前を付けてくださいid_rsa
。ここで、認証管理リンクを使用してキーを認証する必要があります。これにより、キーがauthorized_keys
ファイルに連結されます。
これで、Git GuiとGit Bashは、パスワードを入力しなくてもSSHを使用してプッシュできるようになります。奇妙なことに、Linuxを実行している自分のサーバー上でGit BashとGit Guiを介してSSHを使用してプッシュすることができました。これを思いつくのに何時間も試行錯誤が必要だったので、これが誰かの助けになることを願っています。
私のmsysgit OpenSSL / Bash Gitエクスペリエンス(PuTTYのplinkではありません)では、.ssh/
フォルダーの検索順序は次のようになります。
%HOME%/.ssh/
%HOMEDRIVE%%HOMEPATH%/.ssh/
%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%
停止するように設定します。
Windowsでは、必要に応じてTortoiseGitとGit Bashを使用していました。TortoiseGitにすべてを追加しましたが、正常に機能しましたが、キーが正しいディレクトリにあったとしてもGit Bashはそれを取得しませんでした。Git Bashからこれをしなければならなかったことが判明しました:
ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa
もちろん、キーを配置する場所へのパスを変更することもできます\\
。セパレータとして使用することを忘れないでください。
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