思維導圖:
1. SSH概述
2. OpenSSH
- 配置文件:
- 服務端sshd:/etc/ssh/sshd_config
- 客戶端ssh:/etc/ssh/ssh_config
2.1 客戶端程序ssh
1)ssh
2)客戶端免密登錄
3)scp
4)sftp
2.2 服務端程序sshd
2.3 ssh服務的最佳實踐
3. SSH安全隧道
3.1 本地端口轉發
1)語法
- ssh -g -L local_port:server2_ip:server2_port user@server1_ip
2)使用示例
- 場景:
- 本機的MySQL監聽在3306端口,且只允許本地訪問,本機的外網地址為10.0.0.209
- 這時,可以開放本機的12345端口,然后由10.0.0.209這個地址來訪問本機127.0.0.1的3306端口
- 進而其他主機可以通過訪問10.0.0.209:12345來連入MySQL
- 命令:
- ssh -g -L 12345:127.0.0.1:3306 -f -N 10.0.0.209
3.2 遠程端口轉發
1)語法
- ssh -g -R 0.0.0.0:port1:local_ip:local_port root@server_ip
- 0.0.0.0表示來自所有IP地址的主機都可以訪問它
- port1表示暴露在公網上供其他用戶訪問的端口
- local_ip和local_port表示本機提供服務的端口,如127.0.0.1:80
- root@server_ip 表示公網上其他用戶可訪問的地址
2)使用示例
- 場景:
- 本地主機上構建了一個web服務,但是監聽在本機127.0.0.1:88的地址上
- 但本地主機可以訪問外網主機10.0.0.205,外網主機可以開放端口12345
- 這樣當其他主機訪問外網主機10.0.0.205:12345時,可以轉到本地的127.0.0.1:88地址上
- 命令:
- ssh -g -R 0.0.0.0:12345:127.0.0.1 -f -N 10.0.0.205
- 命令在本地主機上執行
- 遠端主機要開啟GatewayPorts選項
- ssh -g -R 0.0.0.0:12345:127.0.0.1 -f -N 10.0.0.205
3.3 動態端口轉發
1)語法
- ssh -g -D 1080 -f -N user@server1_ip
- 將自己是身份切換到user@server1_ip,然后通過這個主機去訪問外網
- 1080是本地動態轉發的端口
3.4 端口轉發維持
- 端口轉發如果長時間沒有操作,就會自動關閉,所以需要端口轉發維持
- ssh -o ServerAliveInterval=60 user@ip
4. dropbear(輕量化的ssh協議實現方案)
5. telnet服務
5.1 xinetd超級守護進程
1)xinetd簡介
2)xinetd安裝和啟動
3)瞬時守護進程的配置
4)將sshd托管到xinetd
5.2 telnet服務