ssh配置

SSH隧道的类型

  • 本地端口转发(Local Port Forwarding):允许你将本地端口上的数据转发到远程服务器。
  • 远程端口转发(Remote Port Forwarding):允许你将远程服务器上的端口转发到本地计算机。
  • 动态端口转发(Dynamic Port Forwarding):创建一个本地的SOCKS代理服务器,可以用于多种目的,如安全浏览。

本地端口转发:

ssh -L [本地端口]:[目标服务器地址]:[目标端口] root@xxxxx

也可以将本地端口转发写到 ~/.ssh/config 文件中,这样就可以直接在 ssh [SSH服务器别名] 时建立端口转发。

Host xxxxx
  LocalForward 8090 127.0.0.1:8090

可以理解为Local 8090 forward to 127.0.0.1:8090,即访问本地的8090端口就相当于访问远程服务器的127.0.0.1:8090。

注意有端口转发的tcp连接存在时,exit 断开ssh时,ssh命令并不会直接退出,还需要等端口转发连接断开或直接 ctrl+c 退出。

远程端口转发

ssh -R [远程端口]:[本地地址]:[本地端口] root@xxxxxx

这允许远程服务器上的用户连接到你本地机器上的服务。

对应的 .ssh/config 内容如下:

RemoteForward 7890 localhost:7890

可以理解为Remote 7890 forward to 本机的localhost:7890,这其实是让远程服务器使用本机的clash代理

动态端口转发

ssh -D [本地端口] [SSH服务器用户名]@[SSH服务器地址]

这会创建一个SOCKS代理,你可以在浏览器或其他应用程序中配置使用。

高级选项

  • 可以使用 -N 选项在不执行远程命令的情况下建立SSH连接。
  • 使用 -f 选项可以使SSH会话在后台运行。

我的ssh config备份

# 除了pi.arloor.com之外的,Host符合其他条件的Host
## 设置使用socat代理,注意vscode可能把proxyport=6152改成proxyport 6152,注意手动恢复
Host !pi.arloor.com *.arloor.* mac-mini windows
  ProxyCommand /opt/homebrew/bin/socat - PROXY:localhost:%h:%p,proxyport=6152

# 家里的mac-mini
Host mac-mini
  HostName 192.168.5.244
  User arloor

# 家里的windows11
Host windows
  HostName 192.168.5.127
  LocalForward 7788 192.168.5.127:7788
  User arloor

Host tt.arloor.com
  HostName tt.arloor.com
  User root
ssh mac-mini
ssh windows