[ssh]記ssh的幾種玩法


得到一台Linux的服務器,我們可以進行以下幾種玩法:

 

先講一講幾個參數:

-f    要求 ssh在執行命令前退至后台.它用於當ssh准備詢問口令或密語,但是用戶希望它在后台進行.該選項隱含了-n選項.在遠端機器上啟動

-N    不執行遠程命令.用於轉發端口.

-C    要求進行數據壓縮 (包括stdin, stdout, stderr以及轉發X11和TCP/IP連接 的數據).壓縮算法和gzip(1)的一樣,協議第一版中,壓縮級別 “level” 用CompressionLevel選項控制.壓縮技術在modem線路或其他慢速連接上很有用,但是在高速網絡上反而 可能降低速度.可以在配置文件中對每個主機單獨設定這個參數.

-g    允許遠端主機連接本地轉發的端口

-q    安靜模式.消除所有的警告和診斷信息

-T    禁止分配偽終端

-n    把 stdin重定向到/dev/null (實際上防止從stdin讀取數據).  ssh在后台運行時一定會用到這個選項.它的常用技巧是遠程運行X11程序.

1正向連接

使用ssh的socks5把我們的2090連入遠程服務器sudo ssh -NfD 2090 -i /root/.ssh/id_rsa1 root@x.x.x.x -p [ssh端口號] ,把2090端口連入彈到目標機vps上去

 當你有root的權限,建立一個ssh后門,把自己網絡連入對方內網,可以訪問內網的服務,比如內網工作組或者個人的電腦什么的再組合proxychain工具,類似regourd

瀏覽器本地設置代理2090端口然后就可以訪問內網系統了(這里是我的vps)

2.設置反向 SSH 隧道
 
讓他主動連過來,本地直接訪問內網。在內網機器上運行如下命令,其中x.x.x.x 為VPS的IP

ssh -fN -R 10021:localhost:80 root@x.x.x.x -p [ssh端口號],運行后需要輸入vps的密碼

然后可以在VPS上運行命令:內網開啟了apche服務

curl 127.0.0.1:10021 

 

3.VPS做轉發

我們需要的不僅僅是自己登陸VPS可以操作內網的機器,我們需要的是任意一台主機訪問我VPS上的指定端口,然后可以轉發到內網,姿勢如下:

ssh -qTfnN -R :12345:127.0.0.1:80 root@XXXX -p [ssh端口號] -o GatewayPorts=yes

【要在/etc/ssh/sshd_config中修改GatewayPorts no為GatewayPorts yes來打開它才可以進行轉發】

 

使用總結:VPN隧道/SSH隧道


這種代理方式需要比較高的權限(system/root)直接使用系統功能來開啟內網代理的隧道,配置VPN什么的

通過SSH隧道進行代理

ssh -qTfnN -L port:host:hostport -l user remote_ip   #正向隧道,監聽本地port
ssh -qTfnN -R port:host:hostport -l user remote_ip   #反向隧道,用於內網穿透防火牆限制之類
SSH -qTfnN -D port remotehost   #直接進行socks代理

參數詳解:
-q Quiet mode. 安靜模式
-T Disable pseudo-tty allocation. 不占用 shell 了
-f Requests ssh to go to background just before command execution. 后台運行,並推薦加上 -n 參數
-N Do not execute a remote command. 不執行遠程命令,端口轉發就用它了~

有時候,我們手邊沒有端口轉發的工具,也可以通過ssh來做端口轉發

ssh -CfNg -L port1:127.0.0.1:port2 user@host    #本地轉發
ssh -CfNg -R port2:127.0.0.1:port1 user@host    #遠程轉發
 
via:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM