通过SSH访问服务器的service

设置一个服务器,普遍的都讲究一个原则,就是能关掉的端口就关掉。我的服务器一般只开3个端口,分别给http,https,ssh。其中ssh也不使用默认端口,同时关闭密码登录,只打开PubKeyAuthentication。ssh是个很万能的东西,你可以通过它访问防火墙内的端口,上传文件,运行命令,干什么都够了。
比如有很多内部维护页面,比如phpMyAdmin等等,不可能直接开放给外部。通常是仅仅限制内网访问。那么可以用SSH建立一个tunnel,通过这个隧道远程访问这样的服务。
在apache中限制加上访问限制

Allow from localhost

使用SSH建立一个tunnel
$ssh -L2000:localhost:80 username@yourservername.com

然后你可以通过http://localhost:2000来访问你的服务。

也可以使用
$ssh -L2000:yourserver.com:80 username@yourserver.com

这个localhost是从yourserver.com这台机器上看出去的localhost,其实就是yourserver.com这台机器。只要可以,建议用localhost代替yourserver.com,从TCP连接的角度,这样在你的服务器上,走的是loopback interface,即安全,又节约。当然,如果你是要通过yourserver.com连接内网的另一台机器,就需要提供那台机器的地址了。

0 Responses to "通过SSH访问服务器的service"