T. *_*nes 5 networking linux security ssh nat
我在 Amazon AWS 中有一个 VPC。有一个 NAT 服务器在连接到 Internet 网关的公共子网中运行。我有一堆服务器在 VPC 内的各个私有子网中运行。我想通过 SSH 访问私有子网中的服务器。我的所有服务器都运行 AWS Linux (CentOS)。
目前,我可以使用我的私钥通过 SSH 访问 NAT 服务器。NAT 服务器仅允许来自我当前的开发 IP 的 SSH 连接。然后,只有在这些服务器上设置 SSH 登录,或者将密钥文件放在 NAT 服务器上然后使用它们进行 SSH 时,我才能通过 SSH 访问私有子网中的服务器。为了安全起见,我似乎不应该做这两件事。
是否有首选的最佳实践方法来建立这种连接?似乎应该有一种方法可以从我运行 Apple OSX 的家用开发机器上通过单个 SSH 调用进行连接。
您不应该将密钥放在网关上,也不必这样做:-)
设置本地 SSH 配置,以便您可以在需要时使用 NAT 网关进行端口转发:
在您的中创建一个条目~/.ssh/config
,设置到您要连接的主机的本地转发:
Host natgw-fwd
User ec2-user
HostKeyAlias natgw-fwd.my.domain
HostName 54.182.32.11
LocalForward 1025 10.0.2.1:22
Run Code Online (Sandbox Code Playgroud)
然后为每个转发的主机添加一个条目HostKeyAlias
:
Host internal-one
User ec2-user
HostKeyAlias internal-one.ec2.internal
HostName localhost
Port 1025
Run Code Online (Sandbox Code Playgroud)
将隧道放在一个 shell 中:
ssh -C -v natgw-fwd
Run Code Online (Sandbox Code Playgroud)
并在另一个 shell 中连接到内部主机:
ssh internal-one
Run Code Online (Sandbox Code Playgroud)
当除了一两个 shell 之外还使用大量“快速 + 短”连接时(如 dsh 之类的工具),单个连接的设置和拆卸的延迟会变得更加明显,我使用 和 来ControlMaster
启用ControlPath
连接共享。这些限制并不困扰我,因为我很少在这种情况下使用代理或 X11。
归档时间: |
|
查看次数: |
8730 次 |
最近记录: |