SSH从外部访问networking内部的电脑

我有一个静态的IP和ADSL路由器链接到我所有的机器连接到的Linksys无线路由器。 我想在其中一台机器上设置SVN,并提供SSH访问权限,我的networking以外的用户应该可以访问它们。 这可能吗? 即使只是通过networkingSVN访问应该没问题。 请让我知道所有事情都应该做到这一点? 我有Ubuntu VM运行在一台iMac Leopard机器和另外两台Win 7 32/64位机器上。 我可以在另一台机器上设置独立的Ubuntu或Win XP。

请给我提供端口转发的指针,如果需要完成,我完全不知道如何去做。

谢谢,拉贾。

编辑:

感谢您的详细解释。 我试图设置SSH我的Mac机器本身而不是虚拟机。 这里是当前configuration:DSL路由器IPv4地址:192.168.1.1连接到它的Linksys无线路由器有IPv4地址:192.168.0.1和相同的子网掩码255.255.255.0如上

现在我已经为我的Mac分配了IP 192.168.0.20和默认网关192.168.0.1

我在MAC中启用了SSH,并且能够从本地的另一台计算机进行SSH。 ssh [email protected]作品。

我在Linksys路由器上启用了22端口转发function,但是仍然无法执行ssh raja @ publicip我该怎么做,或者还有什么需要做的?

如果你有一个通用的SSHD设置,只需要告诉你的Linksys路由器将TCP端口22转发到你想要在内部访问的IP,然后从外部的ssh转换到静态的IP,你需要机器在内部运行ssh以分配静态IP,而不是dynamic(DHCP)地址。

就个人而言,我会将端口更改为您的机器上未使用的另一个端口,因为非标准端口使机器人更难以扫描您(并且会发生)。 但是这取决于你。 如果使用标准端口,则需要更加小心密码和用户名,并且不允许root用户login到该端口,并且您可能需要考虑安装Denyhosts来自动阻止发送错误密码3次的IP 。

确保你的虚拟机(我假设你正在运行sshd?)被分配它自己的IP,并使用桥接networking,所以它不是两次。 那就是要求一个受到伤害的世界(在路由器之后,然后再次在Leopard机器的虚拟机软件后面)。 桥接networking使机器看起来好像它是逻辑视图中networking中的另一台物理机器。

你不一定需要在服务器上设置ssh到一个非标准的端口…你可以在路由器上设置一个非标准端口来转发到内部机器的端口22,如果你的路由器支持non-one-to-one映射(即将外部端口26转发到192.168.xxx.xxx上的内部端口22),以便只有networking外部的计算机需要使用非标准端口分配。 但是我的个人偏好是改变内部的SSH端口来勾选bot扫描器。

总结…告诉你的Linksys转发端口22(或你select使用的)到你的虚拟机的IP。 不过,我build议使用不同的端口。 确保内部VM机器在内部networking上使用静态而非DHCP,IP地址,因此重新启动不会中断转发映射。 那么这是一个外部静态IP从外部系统ssh'ing的问题来testing它。 如果你使用默认端口22来禁止探测,我也推荐使用denyhosts。 确保您的虚拟机实例在主机上运行桥接,而不是NAT。