5

目前我已经通过 gitosis 添加了一个 git repo。我使用的手册是http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

  1. 我可以克隆它并通过带有私钥和公钥的 ssh auth 推送它(在 gentoo 上),但是使用 Git 扩展的 Windows 用户不能。SSH 密钥放在 $HOME/.ssh 中,ssh 要求输入密码。密码和密码短语(来自私有 ssh 密钥)也不匹配。

  2. Redmine 需要一个裸仓库,所以我在本地机器上从 gitosis 克隆仓库并将其移动到服务器(redmine + git),然后尝试像这里显示的那样同步 http://www.redmine.org/projects/redmine/wiki /HowTo_keep_in_sync_your_git_repository_for_redmine 但它再次要求输入密码!当然,我没有让 apache 成为他自己的 ssh 密钥来验证 gitosis =_= (Apache 是 redmine 裸仓库的所有者,因为它通过 http auth 访问它)

无论如何,问题是如何在访问 gitosis 时使用文件中的私有 ssh 密钥?

===

部分解决! ssh-keygen -t rsa生成密钥,其名称正是id_rsaid_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 identity: /home/user/.ssh/id_rsa
debug1: Trying private key: /home/user/.ssh/id_dsa
debug3: no such identity: /home/user/.ssh/id_dsa
debug1: Trying private key: /home/user/.ssh/id_ecdsa
debug3: no such identity: /home/user/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup keyboard-interactive

因此,ssh 客户端想要准确命名的文件,或者将切换到下一个身份验证方法(密码)。现在我重命名了家用机器上的键,并且:

user@home ~ $ git clone ssh://git@your-gitosis-server/reponame.git
Cloning into reponame...
Enter passphrase for key '/home/user/.ssh/id_rsa':

万岁,它要求输入密码!顺便说一句,ШIИDOШS™ 用户仍然在使用他们生成的数十个密钥时遇到问题。

更新

如果你使用 OpenSSH,那么在 ~/.ssh 中你可以创建一个名为 'config' 的文件,并在其中放置如下内容:

Host mygitosisserver.com
IdentityFile ~/.ssh/private-key-for-mygitosisserver-com
4

2 回答 2

4

如果 Windows 用户定义了 %HOME% 环境变量,他们也应该能够克隆(使用 ssh)。
默认情况下未定义 HOME。
它可以引用他们想要的任何目录(通常,一个与 相同%HOMEPATH%


OP user685107报告:

严格按照puttygen密钥生成手册解决了windows用户的问题。
在 Windows 中制作的新密钥对工作正常

于 2011-07-19T15:43:37.047 回答
0

使用 SSH 设置 git push

使用 ssh-keygen 生成 SSH KEY

ssh-keygen -t rsa -C "your_github_email@example.com"

Github SSH 连接设置

1.从本地机器复制ssh

cat /home/ubuntu/.ssh/github_rsa.pub

2.进入github账号设置页面

3. 点击新建 SSH 密钥

4.添加标题并粘贴从本地复制的ssh密钥

5. 测试SSH

ssh -T git@github.com

6. 使用 ssh url 代替 https 更新存储库的远程 URL

  • 从存储库复制 ssh url

  • 使用 ssh URL 复制克隆 - 时钟在第一个屏幕截图中使用 SSH

    git remote set-url origin git@github.com:JinnaBalu/GitCheatSheet.git

7. 使用 ssh 测试推送

 git add --all

 git commit -am "testing the changes"

 git push -u origin master
于 2018-11-01T15:37:55.573 回答