擁有設備:
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