目前我使用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密钥连接的能力?
答案 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帐户。
使用密钥比密码更安全,因为您可以将多个密钥添加到同一帐户(例如,连接到服务器所需的每台计算机的密钥)。
计算机上的私钥可以使用密码保护。