拥有设备:
1.Kali 2.0虚拟机一台
2.外网Linux服务器一台,(CentOs x64)
问题如下:
在电脑上安装了一台kali 2.0的虚拟机,通过nat物理机的网卡可以访问互联网,现在想要实现可以通过其他任何可访问到互联网的主机能访问到该Kali
实现操作如下:
一、打开Kali的ssh服务
(1)修改sshd_config文件,命令为:
vi /etc/ssh/sshd_config
将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes
(2)将PermitRootLogin without-password修改为
PermitRootLogin yes
然后保存并退出
ESC:wq
(3)service ssh start //启动ssh服务
二、安装autossh
$ sudo apt-get install autossh
三、执行autossh命令
#autossh -M 1234 -NR 19998:localhost:22 root@server_ip
再输入密码就OK了
这样,-M 1234 为监听端口,-NR将本地的22端口转发到server_ip的123456端口上
OK!
这样,再通过远程的服务器的123456端口登录就内网里的kali了
最后,附截图一张
也可以这样: ssh -R 6666:localhost:[email protected]
将本地的8080转发到10.11.22.33服务器上的6666端口上去,从而达到10.11.22.33:6666就是localhost:8080的目的
如果想在远程主机访问6666端口的话,在上面的命令指定下网卡即可,就是下面这样的:
ssh -R 0.0.0.0:6666 localhost:8080 [email protected]
其他参数
-f 后台运行
-N 不开shell
-T 不分配tty
ssh -fNR 6666:localhost:8080 [email protected]
端口映射:
另外再介绍一个ssh -L的一个应用场景:比如某一天你在家加班(机器A),需要连接到公司里的oracle数据库(机器B)里去,但是公司的oracle数据库没有外网地址,但公司有另外一台外网可以访问的机器(机器C);
这时就可以这样操作了:
在机器A上通过ssh -L将本地的端口映射到机器C上,将让它转发所有机器B的请求,也就是下面这样写:
ssh -L 1521:iamoracleserverB.com:1521 root@serverC
当然上面的命令执行的前提是机器A是支持SSH命令的,也就是得要是mac os或linux
端口转发
但如果机器A是一台WINDOWS机器怎么办呢?
那就可以将机器B的1521端口映射到机器C上的某一个端口上来,并且指定为0.0.0.0的这个网卡地址
那么在serverC上执行如下的命令就可以了:
ssh -L 0.0.0.0:1521:iamoracleserverB.com:1521 root@serverC