1. 程式人生 > >SSH的幾種玩法

SSH的幾種玩法

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

先講一講幾個引數:

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

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

-C    要求進行資料壓縮 (包括stdin, stdout, stderr以及轉發X11TCP/IP連線 的資料).壓縮演算法和gzip(1)的一樣,協議第一版中,壓縮級別 “level” 用CompressionLevel

選項控制.壓縮技術在modem線路或其他慢速連線上很有用,但是在高速網路上反而 可能降低速度.可以在配置檔案中對每個主機單獨設定這個引數.

-g    允許遠端主機連線本地轉發的埠

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

-T    禁止分配偽終端

-n    stdin重定向到/dev/null (實際上防止從stdin讀取資料).  ssh在後臺執行時一定會用到這個選項.它的常用技巧是遠端執行X11程式.


1.sshsocks5

把我們的1090連入遠端伺服器sudo ssh -NfD 2090 -i /root/.ssh/id_rsa1 [email protected] -p [ssh埠號]

原理和S5轉發3389是一樣的,把我們的1090埠連入彈到目標機上去

然後瀏覽器設定代理2090埠,就本地直接訪問內網系統





2.設定反向 SSH 隧道

在內網機器上,執行如下命令,其中1.1.1.1為VPSIP,執行後需要輸入vpsr的密碼

ssh -fN -R 10022:localhost:80 [email protected] -p [ssh埠號]


然後可以在VPS上執行命令:【我的本地伺服器開啟了nginx服務

Curl 127.0.0.1:80



3.VPS做轉發

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

ssh -qTfnN -R :12345:127.0.0.1:80 [email protected] -p [ssh埠號] -o GatewayPorts=yes

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


成功代理可以得到內網的東西。