如何通过ssh(gitosis)访问git repo时包含ssh private rsa密钥?

时间:2011-07-19 15:03:14

标签: git ssh gitosis gitolite git-extensions

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

  1. 我可以克隆它并通过私有和公共的ssh auth推送它 键(在gentoo上),但是使用Git Extensions的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 但它再次要求输入密码!当然,我没有把他的阿帕奇 自己的ssh键auth gitosis = _ =(Apache是​​redmine bare的所有者 repo,因为它通过http auth)

  3. 访问它

    无论如何,问题是如何在访问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 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客户端需要准确命名的文件或将切换到下一个auth方法(密码)。现在我在家用机器上重命名了键:

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

    Hurray,它要求密码! BTW,ШIИDOШS™用户仍然存在数十个生成密钥的问题。

    UPD

    如果你使用OpenSSH,那么在〜/ .ssh中你可以创建一个名为'config'的文件,并把它放在这样的东西:

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

2 个答案:

答案 0 :(得分:4)

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


OP user685107报告:

  

严格遵循使用puttygen生成密钥的手册解决了Windows用户的问题   在Windows中制作的新密钥对工作正常

答案 1 :(得分:0)

使用SSH设置git push

使用ssh-keygen生成SSH密钥

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

Github SSH连接设置

1。从本地计算机复制ssh

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

2。转到github account settings页面

3。点击新的SSH密钥

4。添加标题并粘贴本地复制的ssh键

5。测试SSH

ssh -T git@github.com

6。使用ssh url代替https

更新存储库的远程URL。
  • 从存储库复制ssh网址

  • 使用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