bin*_*nic 524 windows ssh rsa git private-key
我的 Git 设置在 Linux 上运行良好,但是当我尝试在 Windows 下进行设置时(使用 Git for Windows 和TortoiseGit),我不知道将我的私有 SSH 密钥放在哪里(或者更好的是,如何知道ssh它在哪里位于)。我在安装 Git for Windows 期间使用标准 ssh.exe 选项。如果我允许服务器上的密码身份验证(代替 RSA),则设置运行良好。
Dan*_*ain 510
如果您正在运行 msysgit(我假设您正在运行)并且希望运行 Git Bash(我推荐它而不是 TortoiseGit,但我现在更倾向于使用 CLI 而不是 GUI),您需要弄清楚您的主目录是什么 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 时,您需要通过佩西的指示设置 SSH 密钥。您需要对使用 TortoiseGit 的每个存储库执行此操作。
Oct*_*Oct 113
使用 Git for Windows 自带的内置 SSH 客户端,你需要设置 HOME 环境变量,以便 Git SSH 客户端可以找到密钥。
例如,在Windows Vista安装中,这将通过setx HOME c:\Users\admin\在命令行上发出来完成。
如果你的私钥没有密码保护,它让我开心并解决了 Git 的问题。如果您想使用 ssh-agent,那么您可以像往常一样运行 ssh-agent cmd.exe(虽然我从未这样做过)和 ssh-add。
请注意,为了不使窗口闪烁,所有 Git/SSH 工具都应该从 cmd.exe 运行。
如果这不能正常工作,使用 plink 可能可以通过调整GIT_SSH来实现。参考所有SVN+ssh教程;这基本上与您需要设置的管道相同。
pac*_*cey 59
您可以通过以下方式为 TortoiseGit 指定密钥位置:
屏幕截图如下:

Hug*_*ins 53
以前的答案都不适合我。这就是最终对我有用的方法。如果您知道要输入什么,它实际上相当简单。它不需要腻子。
这就是在你自己的电脑上完成的一点。现在ssh进入目标服务器,然后做
mkdir -p ~/.ssh
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
rm ../id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
就是这样!你完成了!在 Git Bash 中,执行以下操作进行测试:
ssh someuser@someserver.com ls
Run Code Online (Sandbox Code Playgroud)
如果它列出了 Git 服务器上您的主目录中的文件,那么您就完成了!
对于 GitHub,您没有对他们服务器的 shell 访问权限,但您可以使用他们的网站上传密钥,因此对于“现在复制到您的服务器”这一点,请执行以下操作:
Gre*_*egB 49
如果您将 msysgit 与 OpenSSH 工具一起使用,则需要创建~/.ssh/id_rsa或创建~/.ssh/config指向您的密钥的 Git 配置。
这是 Bitbucket 的 Git 配置示例,它将使用正确的用户名和默认密钥以外的密钥(如果您维护一个用于 SSH 连接的密钥,另一个用于 Git 帐户)。
~/.ssh/config:
Host bitbucket.org
Hostname bitbucket.org
User git
IdentityFile /C/keys/yourkey.key
Run Code Online (Sandbox Code Playgroud)
在 Git Bash 中,您可以运行两个命令将您的密钥添加到当前会话的 ssh-agent 中,以避免重复输入密钥的密码。
eval `ssh-agent`
ssh-add /C/keys/yourkey.key
Run Code Online (Sandbox Code Playgroud)
小智 17
我只是设置 %HOME%=%HOMEPATH%
这有利于所有登录系统的用户(他们每个人都有单独的 .ssh 文件夹)。
在 Vista 中:
小智 11
就我而言,我在 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
Run Code Online (Sandbox Code Playgroud)
然后我可以使用密钥 C:\Users\<user>\.ssh\id_rsa
如果您将 Git for windows 与 OpenSSH for Windows 一起使用。Git 仍在使用自己的ssh.
另外,如果您计划ssh-keyscan host.com > known_hosts从 OpenSSH使用,请小心,因为来自stdoutof keyscan(在 Windows 上)的管道输出将编码更改为 UCS-2,但 OpenSSH 只能读取 UTF-8!所以一定要更改known_hosts文件编码。
小智 7
您的私钥需要添加到工作站上的 SSH 代理。您如何实现这一点可能取决于您使用的 git 客户端,但是 puTTY 及其相关代理(选美)可能会为您解决问题,这里是官方二进制文件和源代码的链接:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
小智 5
当混合适用于 Windows 的 GitHub 和适用于 Windows 的 Git GUI 时,您可能会遇到 Git GUI 不断提示您输入用户名和密码的问题。解决此问题的方法是将远程 URL https:(Windows 版 GitHub 创建的 URL)更改为 Git 协议。在.git配置文件的目录中找到:
[remote "origin"]
url = https://github.com/**username**/**reponame**.git
fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)
将其更改为:
[remote "origin"]
url = git@github.com:**username**/**reponame**.git
fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)
最有效的方法是使用 Pageant,因为它可以让您在会话开始时只写一次密码,而不是每次推送。这里所有的答案都太短了,所以我会在这里发布一个详细的指南:
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"MINGW64Git 控制台的新实例,并通过编写命令来验证环境变量是否存在env | grep -i ssh。(最初摘自这两个指南,我将它们合二为一:How to setup Git for Windows and Configure MinGW-W64+MSYS to use PuTTY Plink/Pageant。)
| 归档时间: |
|
| 查看次数: |
994574 次 |
| 最近记录: |