如何使用相同的IP和不同的SSH端口号将SSH连接到两个不同的Linux SSH主机(docker)
以下是IP和端口号配置-所有主机都运行Ubuntu或其他版本如何使用相同的IP和不同的SSH端口号将SSH连接到两个不同的Linux SSH主机(docker),docker,openssh,Docker,Openssh,以下是IP和端口号配置-所有主机都运行Ubuntu或其他版本 HostA : 192.168.1.200 DockerHostA (running in HostA) : 172.17.0.8 MyLaptop : 192.168.1.201 In the docker specification, I have mapped port 22 (of DockerHostA) to port 9090 of (HostA). 我可以通过网络连接到HostA ssh user@192.16
HostA : 192.168.1.200
DockerHostA (running in HostA) : 172.17.0.8
MyLaptop : 192.168.1.201
In the docker specification, I have mapped port 22 (of DockerHostA) to port 9090 of (HostA).
我可以通过网络连接到HostA
ssh user@192.168.1.200
这将在~/.ssh/known_hosts文件中添加一个条目
我也可以像这样连接到DockerHostA
ssh -p 9090 user@192.168.1.200
这还会在已知的_hosts文件中添加一个条目(第二个)。发生这种情况后,我只能连接到DockerHostA,无法通过ssh连接到HostA
ssh user@192.168.1.200
ssh -p 9090 user@192.168.1.200
这两个ssh都可以连接到DockerHostA
我可以删除已知的_hosts文件,这样就可以在问题再次发生之前,将ssh连接到两个主机上一次
~/.ssh/known_hosts has two entries
|1|883fTHa....
|1|t89sTmV....
所以,我的问题是
问题1: 我假设您完全理解指纹检查的目的,以及自动确认新指纹或认为指纹更改合法的风险:
ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" user@192.168.1.200
ssh -p 9090 -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" user@192.168.1.200
问题2: 我假设您的docker容器是在docker bridge网络上启动的。这是一个单独的子网,通常默认为172.17.0.0/16。默认情况下,没有从192.168.0.0/24到172.17.0.0/16的路由
基本上,您可以创建所需的任何路由和iptables规则,但通常您希望让docker管理一切:当您使用
docker run-p:
时,docker会自动创建一个从主机:
到容器:
的转发规则,您可以映射两个SSH容器端口(so 22)在您的主机上创建任意端口。例如,通过这种方式,您将能够做到这一点
容器1
ssh-p9000user@localhost
容器2
ssh-p 9001user@localhost