我刚开始研究Git.我使用Windows 7并安装了msysgit(1.7.8)和Tortoisegit(1.7.6).存储库在Linux服务器上创建,可通过LAN访问.我面临的问题是我无法使用Tortoisegit克隆存储库,它要求输入密码,我不确定它要求的密码.同时我可以使用Git Gui克隆存储库并执行所有操作.任何人都可以帮助我理解为什么当Git Gui没有时,Tortoisegit会问密码.我尝试卸载Git和Tortoisegit然后重新安装但没有成功.

我安装了msysgit,使用OpenSSH.我正在连接一个gitosis回购.从git bash,我创建了一个.profile文件,每次打开git bash时运行ssh-agent(如果尚未运行),使用此脚本
SSH_ENV=$HOME/.ssh/environment
function start_agent {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
echo succeeded
chmod 600 ${SSH_ENV}
. ${SSH_ENV} > /dev/null
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV} > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cywgin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
Run Code Online (Sandbox Code Playgroud)
我也在使用git扩展,它从Windows命令提示符运行git命令,而不是git bash.所以,ssh没有看到正在运行的ssh-agent.有可能解决这个问题吗?
我正在尝试使用Visual Studio 2017中的SSH连接到Git存储库(在Bitbucket上)(据我所知,它支持用于Git的SSH).我已经设置了所有东西,将存储库克隆到我的计算机上,然后我可以提交,但是如果我尝试执行某些操作,则会使用以下消息(来自Visual Studio的"输出"窗口)失败:
Error encountered while fetching: Git failed with a fatal error.
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)
从命令提示符尝试它,我得到这些稍微提供信息的消息:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
从Git Bash我尝试打开SSH代理,添加我的私钥和获取,它似乎工作(或者至少我没有得到任何消息,不像代理未启动或未添加密钥):
eval `ssh-agent`
ssh-add ~/.ssh/xxxx
git fetch
Run Code Online (Sandbox Code Playgroud)
但是Visual Studio仍然无法连接.我也尝试从Windows命令提示符执行相同的操作:
ssh-agent
set SSH_AUTH_SOCK=/tmp/ssh-SIAryCa61iz9/agent.11128
set SSH_AGENT_PID=9804
ssh-add xxxx
git fetch
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误.
我已经将公钥添加到Bitbucket,并ssh -T git@bitbucket.org输出"以xxxx登录".此外,我可以使用SourceTree正确连接并将私钥添加到Pageant(我使用的密钥ssh-add具有所需的OpenSSH格式,我是从.ppk格式创建的).
我是新手使用git.每次我想将我的文件推送到github时,它总是显示我输入密码的通知.例如:输入密钥'/c/Users/.ssh/id_rsa'的密码:
我希望我的git能为我记住密码.我怎么能在Windows 7上做到这一点?我已经在这里阅读了帮助页面http://help.github.com/ssh-key-passphrases/.它似乎只适用于Mac/Linux.
谢谢你的帮助.
我在 Windows 10 Pro 机器上尝试执行 git pull,而不必每次都输入我的 SSH 密码。已生成带有密码的密钥对,并且公钥已成功添加到我的 GitLab 帐户。
在“服务”GUI 中,我可以看到“OpenSSH 身份验证代理”正在运行,如果在 PowerShell 中,我会Get-Service ssh-agent看到以下内容,确认相同的信息:
Status Name DisplayName
------ ---- -----------
Running ssh-agent OpenSSH Authentication Agent
Run Code Online (Sandbox Code Playgroud)
当我这样做时,ssh -T git@gitlab.com我收到“欢迎来到 Gitlab”消息,表明ssh 连接成功,无需输入密码。
我正在运行 ssh 代理并添加身份(通过运行svn add、输入我的密码并获取成功消息)。在同一终端中运行“ssh -T git@gitlab.com”会成功,无需密码。
在终端中,我可以运行 git 命令(例如git push或git pull),每次都会提示我输入密码,并且操作成功。
在 Visual Studio Code 中,当我单击 GUI 按钮与源同步时,出现错误git@gitlab.com: Permission denied (publickey,keyboard-interactive).

这可能是因为它没有提示输入密码,而需要输入密码。当我单击“打开 Git 日志”或“显示命令输出”时,我可以看到尝试的命令。在 VSCode 的终端或另一个终端类型应用程序中运行完全相同的命令,系统会提示我输入密码,输入正确的密码后,操作成功。
git Remote origin url 是此处描述的格式的 SSH URL ;它不是 …
Git:如何在Windows机器中本地缓存密码.我有mysysgit和tortoisegit
编辑:
我使用https
这时我通过gitosis添加了一个git repo.我使用的手册是http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
我可以克隆它并通过私有和公共密钥(在gentoo上)通过ssh auth推送它,但是使用Git Extensions的Windows用户不能.SSH密钥放在$ HOME/.ssh中,ssh要求输入密码.也没有密码,也没有密码(来自私人ssh密钥)不匹配.
Redmine需要一个裸仓库,所以我克隆了我本地机器上的gitosis回购并将其移动到服务器(redmine + git),然后尝试同步如此显示 http://www.redmine.org/projects/redmine/wiki/HowTo_keep_in_sync_your_git_repository_for_redmine 但它再次要求输入密码!当然我没有使用apache自己的ssh密钥来auth gitosis = _ =(Apache是redmine bare repo的所有者,因为它通过http auth访问它)
无论如何,问题是如何在访问gitosis时使用文件中的私有ssh密钥?
===
部分解决了!
ssh-keygen -t rsa生成密钥,其名称正好是id_rsa和id_rsa.pub.如果你跑,ssh -vvv gitosis@your-server.com你应该看到类似的东西
debug1: Authentications that can continue: publickey,keyboard-interactive
…
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: user@domain-user
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Trying private key: /home/user/.ssh/id_rsa
debug3: no such …Run Code Online (Sandbox Code Playgroud) 为基本问题提前道歉 - 我是git的新手,并且我确信我错过了一些非常简单的东西,有人可以很快回答.
在msysgit安装期间,我指定我想使用PLink而不是OpenSSH作为我的安全shell客户端程序.环境变量'GIT_SSH'设置为'C:\ Program Files(x86)\ PuTTY\plink.exe',这是plink的正确路径.我试过有没有引号.bash提示符中的"echo $ GIT_SSH"显示环境变量的正确值.我也可以使用putty通过SSH连接到github,没有任何问题.
在启动pagent并添加我的私钥后,我打开了一个新的git bash窗口并尝试连接到github(github已经有我的公钥并且正确设置 - 我正在使用jquery项目作为快速测试).尽管指定我想使用PLink并且显然设置了正确的环境变量,但msysgit仍在尝试使用〜/ .ssh目录中的密钥文件.
我已经通过实际将我的私钥放在该目录中并且一切正常(我能够克隆jquery存储库而没有任何问题)确认了这一点,但我真的很想得到这个设置所以我可以管理我的如果可能,通过腻子私钥.
不确定我错过了什么..非常感谢任何帮助 - 提前感谢!
我在 BitBucket 上有一个私有仓库,我尝试使用 composer install 在本地主机上安装,这是我的 composer.json 文件:
{
"repositories": [
{
"type": "git",
"url": "git@bitbucket.org:username/repo.git"
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行 composer install 时,我得到:
[RuntimeException] 无法执行 git clone --mirror "git@bitbucket.org:username/repo.git" "C:/Users/...../" 克隆到裸仓库 'C:/Users/... ..'... 权限被拒绝(公钥)。致命:无法从远程存储库读取。请确保您拥有正确的访问权限并且存储库存在。
我的密钥对有一个密码短语,但 composer 从不要求它,我正在运行 Windows 10,同时运行 Pageant 客户端并选择了正确的密钥。
还有一个包含此数据的配置文件:
Host bitbucket.org
IdentityFile ~/.ssh/openssh (yes my key name is openssh)
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我复制并粘贴此命令:
git clone --mirror "git@bitbucket.org:username/repo.git"
我确实被要求输入密码,然后它开始克隆 Repo。
可能有什么问题?有关此错误的大多数信息直接针对 git 命令,但在我的情况下,它们有效,无效的是作曲家,我做错了什么?