通过 SSH 隧道连接到 gitosis 服务器

2024-04-21

我的 MacBook 上有一个 SSH 隧道设置,就像这样......


$ ssh -o ServerAliveInterval=3 -N -L 22222:gitosis-server:22 [email protected] /cdn-cgi/l/email-protection  

所以我可以 ssh 到 localhost:22222 并最终到达防火墙后面的 gitosis 服务器。

我创建了一个本地 id_rsa.pub 文件,将其复制到 gitosis 服务器(运行 Centos5),并使用以下命令将其导入到 gitosis 中:


# sudo -H -u gitosis gitosis-init 

它成功了,因为我可以在 /var/lib/gitosis/.ssh/authorized_keys 中看到公钥。

回到我的 macbook 上,我使用以下内容设置了 ~/.ssh/config 文件...


Host gitosis-server
Hostname localhost
HostKeyAlias gitosis-server.domain.com
  Port 22222
  

所以...我认为这个命令应该有效...


$ git clone gitosis@gitosis-server:gitosis-admin.git  

然而它并没有,因为它要求输入密码......当公钥应该工作时。


Initialized empty Git repository in /Users/USER/Development/gitrepo/gitosis-admin/.git/
gitosis@localhost's password: 
  

关于让 git 工作到防火墙后面的 gitosis 服务器有什么想法吗?

Thanks,
Matt


编辑 - 从 SSH 尝试添加调试

我执行了这个命令“ssh -vvv gitosis@gitosis-server”。我进行了一些调试,它似乎不喜欢我的身份。



debug2: key: /Users/USER/.ssh/id_rsa.gitosis (0x1019b0)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/USER/.ssh/id_rsa.gitosis
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
gitosis@localhost's password:   

EDIT 2

好吧……肯定是一把坏钥匙。我再次仔细检查了所有密钥,当然发现 gitosis 服务器在authorized_keys 文件中持有错误的密钥。

debug1:用户 gitosis 服务的 userauth-请求 ssh-连接方法 无 debug1:尝试 0 次失败 0 debug1:PAM:初始化“gitosis” debug1:PAM:将 PAM_RHOST 设置为“firewall.domain.com” debug1:PAM:将 PAM_TTY 设置为“ssh” debug1:用户 gitosis 服务的 userauth-请求 ssh-连接方法 publickey debug1:尝试 1 失败 1 debug1:测试pkalg/pkblob是否可接受 调试1:暂时使用_uid:102/103(e = 0/0) debug1:尝试公钥文件 /var/lib/gitosis/.ssh/authorized_keys 调试1:恢复uid:0/0 调试1:暂时使用_uid:102/103(e = 0/0) debug1:尝试公钥文件 /var/lib/gitosis/.ssh/authorized_keys2 调试1:恢复uid:0/0 来自 FIRE.WALL.IP.ADDRESS 端口 52453 ssh2 的 gitosis 的公钥失败


跟进:

我不知道为什么 gitosis 坚持重用一个坏的公钥。试图强制它获取正确的密钥没有成功。

所以今天我刚刚在我的 CentOS5 机器上删除并重新安装了 gitosis 软件包。



yum remove gitosis
rm -rf /var/lib/gitosis
yum install gitosis
sudo -H -u gitosis gitosis-init < /tmp/id_rsa.gitosis.pub  #the correct key
  

在我的 Mac 上,我通过防火墙 SSH 隧道 localhost:22222 到达 gitosis-server:22。


$ ssh -o ServerAliveInterval=3 -N -L 22222:gitosis-server:22 [email protected] /cdn-cgi/l/email-protection  

在我的 Mac 上,我创建了 ~/.ssh/config ,如下所示...


Host gitosis-server
Hostname localhost
IdentityFile ~/.ssh/id_rsa.gitosis
HostKeyAlias gitosis-server.domain.com
  Port 22222  

然后...按照本网站上的说明进行操作...

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

……之后的一切“这里发生了一些很酷的魔法。在本地计算机上运行它:”...只是有效...除了记住将用户名“git”替换为“gitosis”。

希望所有这些废话对某人有所帮助。也感谢我在这里得到的建议......它有助于缩小问题范围。

Matt

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 SSH 隧道连接到 gitosis 服务器 的相关文章

随机推荐