SSH 功能
正向代理、反向代理、ssh-tunnel、ssh over socks5、交換鑰匙
- 一般連線:
ssh <user>@<ip> -p <port>
- 正向代理(left-connection)-遠端port 投射到 本地port:
ssh -LN <本地IP>:<本地Port>:<遠端IP>:<遠端Port> <遠端User>@<遠端IP>
- 持續嘗試連線(要免密、依賴autossh)
autossh -LN <本地IP>:<本地Port>:<遠端IP>:<遠端Port> <遠端User>@<遠端IP>
- 持續嘗試連線(要免密、依賴autossh)
- 反向代理(right-connection)-本地port 投射到 遠端port:
ssh -RN <遠端IP>:<遠端Port>:<本地IP>:<本地Port> <遠端User>@<遠端IP>
- 持續嘗試連線(要免密、依賴autossh)
autossh -RN <遠端IP>:<遠端Port>:<本地IP>:<本地Port> <遠端User>@<遠端IP>
ps. 光是這樣是不夠的,反向代理還必須修改,本地端/etc/ssh/sshd_config
文件,加入GatewayPorts yes
這一行。並且重新啟動sudo service ssh restart
- 持續嘗試連線(要免密、依賴autossh)
- ssh-tunnel-本地socks5:
ssh -DN <本地Port> <遠端User>@<遠端IP>
-
ssh over socks5:
ssh <遠端User>@<遠端IP> -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p"
- 免密碼登入/交換鑰匙:
- 如果本地沒有鑰匙,那就生成鑰匙:
ssh-keygen -t rsa -C <自己的email>
- 丟到遠端主機:
ssh-copy-id <遠端User>@<遠端IP>
開機自動執行
- 編輯
/etc/rc.local
文件 - 在
exit
之前加入指令 範例:
常見指令
-f 后台执行 ssh 指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地端指定主机的指定端口
-L 将本地机(客户机)的某个端口转发到远端指定主机的指定端口
-p 指定远程主机的端口
保持穩定連線
每30秒 發出一個請求
nano ~/.ssh/config
// 加入这句:
ServerAliveInterval 30
參考文獻
Written on December 23, 2019