Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在通过ssh(gitosis)访问git repo时包含ssh私有rsa密钥?_Git_Ssh_Gitosis_Gitolite_Git Extensions - Fatal编程技术网

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

如何在通过ssh(gitosis)访问git repo时包含ssh私有rsa密钥?,git,ssh,gitosis,gitolite,git-extensions,Git,Ssh,Gitosis,Gitolite,Git Extensions,现在我通过gitosis增加了一笔git回购。我使用的手册是 我可以用private和public克隆它并通过ssh-auth将其推入 键(在gentoo上),但使用Git扩展的windows用户 不能。SSH密钥放在$HOME/.SSH中,SSH要求输入密码。 Nor密码和密码短语(来自私有ssh密钥)不匹配 Redmine需要一个裸回购协议,所以我在我的网站上从gitosis克隆了回购协议 本地计算机并将其移动到服务器(redmine+git),然后尝试 这里显示的同步 但它再次要求输入密码

现在我通过gitosis增加了一笔git回购。我使用的手册是

  • 我可以用private和public克隆它并通过ssh-auth将其推入 键(在gentoo上),但使用Git扩展的windows用户 不能。SSH密钥放在$HOME/.SSH中,SSH要求输入密码。 Nor密码和密码短语(来自私有ssh密钥)不匹配

  • Redmine需要一个裸回购协议,所以我在我的网站上从gitosis克隆了回购协议 本地计算机并将其移动到服务器(redmine+git),然后尝试 这里显示的同步 但它再次要求输入密码!当然,我没有让阿帕奇成为他的 拥有用于验证gitosis==(Apache是redmine bare的所有者)的ssh密钥 repo,因为它通过http身份验证访问它)

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

    ===

    部分解决!
    ssh-keygen-t rsa
    生成密钥,其名称正好是id\u rsaid\u rsa.pub。 如果运行
    ssh-vvvgitosis@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™ 用户在生成的数十个密钥方面仍然存在问题

    Upd

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

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

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


    报告:


    通过严格遵守puttygen密钥生成手册,解决了windows用户的问题。
    在windows中制作的新密钥对工作正常

    使用SSH设置git推送 使用SSH keygen生成SSH密钥 Github SSH连接设置 1.从本地计算机复制ssh 2.转到github页面 3.单击新建SSH密钥 4.添加标题并粘贴从本地复制的ssh密钥 5.测试SSH 6.使用ssh URL代替https更新存储库的远程URL
    • 从存储库复制ssh url

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

      git远程设置url源git@github.com:JinnaBalu/gitsheatsheet.git

    7.用ssh测试推送
    这是因为git.cmd(git扩展中的预初始化类型)具有
    @如果不存在“%HOME%”的@set HOME=%HOME%%HOMEPATH%%HOMEPATH%%/code>,因此在git环境中设置了%HOME%。但是,如何导入ssh密钥?我回到家里,把我的ssh密钥从工作站放到~/.ssh,试图克隆
    git克隆ssh://git@my_host/gitosis admin.git
    并捕捉到询问密码的提示(通常是一个询问密码短语的窗口)。@user685107:如果您使用密码短语生成私钥,这似乎很正常。在这种情况下:当然,密钥是用密码短语生成的。但Putty使密钥与OpenSSH服务器不兼容。所以我在同一台Windows服务器上生成了它们™ 用户。它们不是问题,只是连接总是要求密码而不是密码passphrase@user685107:每当ssh连接请求密码时,这意味着pubilc密钥在服务器端(在~/.ssh/authorized_keys文件中)没有正确发布。您是否特别确定存在正确的公钥?通过严格遵守puttygen的密钥生成手册,windows用户的问题得到了解决。是的,我确信,在/var/spool/gitosis/.ssh/authorized keys和~/.ssh/match中会导致公钥
    ssh-keygen -t rsa -C "your_github_email@example.com"
    
    cat /home/ubuntu/.ssh/github_rsa.pub
    
    ssh -T git@github.com
    
     git add --all
    
     git commit -am "testing the changes"
    
     git push -u origin master