Joh*_*han 5 ssh git forwarding
我试图通过 ssh 门设置 ssh/git 访问,但 googleing 已经空了。基本上,我希望将用户 git 到我的 ssh 门的任何连接转发到我的 ssh 服务器,以便我可以远程进行推和拉。但是,如果任何其他用户连接,我希望他们像往常一样登录。
internet--(git)-->gate--(git)--> git-server
internet--(user)-->gate
Run Code Online (Sandbox Code Playgroud)
任何帮助或建议将不胜感激。
在客户端执行此操作的一种方法是将以下内容添加到您的 .ssh/config:
Host git.life-hack.org
HostName git.life-hack.org
ProxyCommand ssh darkclown@www.life-hack.org nc %h %p
User git
Run Code Online (Sandbox Code Playgroud)
但我希望有一种方法可以做到这个服务器端。
我假设您正在谈论 Linux 和 OpenSSH。如果情况并非如此,请告知。
据我所知,git 服务器无法直接从互联网访问。我认为您不能仅使用 SSH 自动执行您所建议的操作。
假设 gateway 位于 2.2.2.2(公共 IP),git-server 位于 10.10.10.10 (RFC1918)
根据您想要实现的目标以及限制条件,您可以:
1) 让连接到 git-server 的用户首先转发端口:
ssh -N -L2222:10.10.10.10:22 user@2.2.2.2
Run Code Online (Sandbox Code Playgroud)
然后他们可以登录为:
ssh -p2222 git@localhost
Run Code Online (Sandbox Code Playgroud)
2) 在网关上,您可以将 2.2.2.2:2222 的连接转发到 10.10.10.10:22,以便您的用户登录为: ssh -p2222 git@2.2.2.2
这需要在门上执行一些命令:
# enable forwarding
echo -n 1 > /proc/sys/net/ipv4/ip_forward
# DNAT packets destined for 2.2.2.2:2222 to 10.10.10.10:22
iptables -A PREROUTING -d 2.2.2.2 -p tcp --dport 2222 -j DNAT --to-destination 10.10.10.10:22
# allow responses from 10.10.10.10 to get through
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# allow forwarding connections to 10.10.10.10:22
iptables -A FORWARD -p tcp --dport 22 -d 10.10.10.10 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
git-server 上没有什么具体要做的事情。
| 归档时间: |
|
| 查看次数: |
1740 次 |
| 最近记录: |