如何在URL中隐藏ssh://和port

时间:2016-04-22 08:44:16

标签: git ssh

目前我使用Gitblit作为repo管理器,在apache tomcat(centOS 6.7)后部署为WAR。

要连接到存储库,我使用URL(当前状态):

git <command> ssh://<user>@<host>:29418/<repo>

预期的方式是(&#34;想要&#34;状态):

git <command> <user>@<host>:<repo>

我的虚拟主机:

<VirtualHost *:80>
    ServerName <host>
    ErrorLog logs/gitblit_error_log

    ProxyRequests     off
    ProxyPreserveHost on

    RewriteEngine on
    RewriteLog logs/apache-mod_rewrite
    RewriteCond %{REQUEST_URI} !^/gitblit-1.7.1.*
    RewriteRule ^/(.*)$ /gitblit-1.7.1/$1 [L,PT]

    JkMount /gitblit-1.7.1* worker1
</VirtualHost>

如何实现这一目标并仍然保持使用SSH密钥连接的能力?

2 个答案:

答案 0 :(得分:0)

这看起来像是Apache的配置文件,它是一个Web服务器。这是错误的配置文件。而是,更改SSH的客户端配置。它位于客户端(而非您的服务器)上的~/.ssh/conf。确保权限正确,否则SSH将拒绝阅读。

这是我的SSH配置中的一段。

Host myserver
HostName example.com
Port 22000
User john

这样,当我git remote add时,我可以这样做:

git clone myserver:swordfish.git

而不是:

git clone ssh://john@example.com:22000/swordfish.git

如果愿意,您甚至可以为每个主机指定不同的身份密钥。

答案 1 :(得分:-1)

使用git协议而不是ssh,你不会使用用户名和端口

https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols#The-Git-Protocol

  

SSH,又名git @:而不是ssh://git@.com/

     

使用公钥验证。您必须生成密钥对(或&#34;公钥&#34;),然后将其添加到您的GitHub帐户。

     

使用密钥比密码更安全,因为您可以将多个密钥添加到同一帐户(例如,连接到服务器所需的每台计算机的密钥)。

     

计算机上的私钥可以使用密码保护。