# 杂项 ## 当有如下网络拓扑结构时 - A: 本地机器 - B: 开放了SSH连接的机器 - C: 无外网连接, 与B处于同一内网的机器(或者为B本身, 用于B未开启其他端口的入站权限情况) ### ssh 配置文件样例 文件路径: ~/.ssh/config ``` Host A HostName x.x.x.x User ubuntu Port 22 IdentityFile ~/.ssh/{A_key_file} Host B HostName pc.example.com User ubuntu Port 2222 IdentityFile ~/.ssh/{B_key_file} Host C HostName y.y.y.y User root Port 22 IdentityFile ~/.ssh/{C_key_file} ``` ### SSH 端口转发 ```bash ssh -N -L {A端口号}:{C}:{C端口号} ``` 此命令可将对A端口号的访问, 转发至C端口号的访问 用例1: ssh -N -L 3306:localhost:3306 B 此命令将本地的3306转发到B机器的3306端口, 这样即使B未打开3306端口的入站权限,也可以在本地访问到B机器的3306端口 用例2: ssh -N -L 3306:C:3306 B 此命令将本地的3306转发到C机器的3306端口, 这样即使C没有连接外网,也可以依然再本地访问到C机器的3306端口 ### SSH 跳板连接 ```bash ssh -J B C ``` 此命令可通过B建立到C的ssh连接