如何使用 SSH 存储库访问在 AWS private VPS 中安装 Phabricator
How to install Phabricator in AWS private VPS with SSH repo access
我正在 AWS 上安装 Phabricator,通常的 proxy/web/database 设置适用于 HTTP/S。现在我想添加对存储库的 SSH 访问。如何配置对存储库的 SSH 访问?我的使用量很小,我不想创建复杂或晦涩的设置。
如果弹性 IP 与代理服务器相关联,则代理必须将 SSH 请求代理到 Phabricator。 SOCKS 代理可以工作吗?有没有一种简单的方法(即软件包)让 socks 代理在任何一个重新启动时连接到 Web 服务器?
没有 SOCKS 代理,似乎替代方案是将所有内容都放在一台服务器上,当然数据库除外。这意味着 Web 服务器(运行 Phabricator)将需要在 public VPS 中,并具有与之关联的弹性 IP。这样 HTTPS 和 SSH 就可以连接到相同的主机名。
有其他选择吗?是我在一台服务器上设置所有内容的唯一选择吗?
这是通过 IP 和端口转发完成的。我最初对端口转发的搜索被路由器和防火墙中的端口转发淹没了。
将以下内容添加到 /etc/sysctl.d/50-ip_forward.conf
。这适用于 openSUSE Leap 和 CentOS。
# Enable IP_FOWARD
net.ipv4.ip_forward = 1
应用带有 sysctl
的文件。
sudo sysctl -p /etc/sysctl.d/50-ip_forward.conf
然后转发SSH端口,测试。如果您无法访问服务器,请从 AWS 控制台重新启动它。在进行此更改之前,我已经将管理端口更改为另一个端口。对我来说,将 Port 添加到我的 ~/.ssh/config
比用户在其 git 客户端中指定不同的端口更容易。
sudo firewall-cmd --zone external --add-forward-port port=22:proto=tcp:toaddr=1.2.3.4
如果一切正常,将更改永久化。
sudo firewall-cmd --zone external --add-forward-port port=22:proto=tcp:toaddr=1.2.3.4 --permanent
不要忘记在 AWS 安全组中添加必要的端口。重新启动服务器以确保所有内容在重新启动后保持不变。
NAT实例
作为额外的奖励,让我们将代理变成 NAT 实例! external
区域已启用伪装但未使用。将 eth0
接口分配给外部区域。
sudo firewall-cmd --zone external --add-interface eth0
在您的 VPC 中,将 0.0.0.0/0
的默认路由添加到私有子网中,目标为上述实例。现在从私有子网中的内部服务器测试 Internet 连接。性能不是问题,因为此路由仅用于服务器更新,不用于生产流量。
ping 8.8.8.8
如果一切正常,将更改永久化。
sudo firewall-cmd --zone external --add-interface eth0 --permanent
我喜欢在进行 network/firewall 更改后重新启动,以确保所有内容在重新启动后保持不变。
我正在 AWS 上安装 Phabricator,通常的 proxy/web/database 设置适用于 HTTP/S。现在我想添加对存储库的 SSH 访问。如何配置对存储库的 SSH 访问?我的使用量很小,我不想创建复杂或晦涩的设置。
如果弹性 IP 与代理服务器相关联,则代理必须将 SSH 请求代理到 Phabricator。 SOCKS 代理可以工作吗?有没有一种简单的方法(即软件包)让 socks 代理在任何一个重新启动时连接到 Web 服务器?
没有 SOCKS 代理,似乎替代方案是将所有内容都放在一台服务器上,当然数据库除外。这意味着 Web 服务器(运行 Phabricator)将需要在 public VPS 中,并具有与之关联的弹性 IP。这样 HTTPS 和 SSH 就可以连接到相同的主机名。
有其他选择吗?是我在一台服务器上设置所有内容的唯一选择吗?
这是通过 IP 和端口转发完成的。我最初对端口转发的搜索被路由器和防火墙中的端口转发淹没了。
将以下内容添加到 /etc/sysctl.d/50-ip_forward.conf
。这适用于 openSUSE Leap 和 CentOS。
# Enable IP_FOWARD
net.ipv4.ip_forward = 1
应用带有 sysctl
的文件。
sudo sysctl -p /etc/sysctl.d/50-ip_forward.conf
然后转发SSH端口,测试。如果您无法访问服务器,请从 AWS 控制台重新启动它。在进行此更改之前,我已经将管理端口更改为另一个端口。对我来说,将 Port 添加到我的 ~/.ssh/config
比用户在其 git 客户端中指定不同的端口更容易。
sudo firewall-cmd --zone external --add-forward-port port=22:proto=tcp:toaddr=1.2.3.4
如果一切正常,将更改永久化。
sudo firewall-cmd --zone external --add-forward-port port=22:proto=tcp:toaddr=1.2.3.4 --permanent
不要忘记在 AWS 安全组中添加必要的端口。重新启动服务器以确保所有内容在重新启动后保持不变。
NAT实例
作为额外的奖励,让我们将代理变成 NAT 实例! external
区域已启用伪装但未使用。将 eth0
接口分配给外部区域。
sudo firewall-cmd --zone external --add-interface eth0
在您的 VPC 中,将 0.0.0.0/0
的默认路由添加到私有子网中,目标为上述实例。现在从私有子网中的内部服务器测试 Internet 连接。性能不是问题,因为此路由仅用于服务器更新,不用于生产流量。
ping 8.8.8.8
如果一切正常,将更改永久化。
sudo firewall-cmd --zone external --add-interface eth0 --permanent
我喜欢在进行 network/firewall 更改后重新启动,以确保所有内容在重新启动后保持不变。