在 Linux 系统中,SSH(Secure Shell)协议是用于远程登录和管理服务器的重要工具。然而,SSH 命令的功能远不止于此。今天,我们就来探讨一下那些你可能不知道的 7 个 SSH 命令高级用法。
1. 多跳登录(ProxyJump/ProxyCommand)**
使用 SSH 的 -J
选项(或配置文件中的 ProxyJump
指令),你可以通过一台中间跳板机登录到目标服务器。这对于需要穿越防火墙或复杂网络环境的场景非常有用。
重点内容:ssh -J user@jump_host user@target_host
2. 端口转发(Port Forwarding)**
SSH 支持本地端口转发、远程端口转发和动态端口转发。通过端口转发,你可以安全地访问内网资源或绕过防火墙限制。
重点内容:本地端口转发:ssh -L local_port:remote_host:remote_port user@ssh_host
3. SSHFS 挂载远程文件系统**
结合 SSH 和 FUSE(Filesystem in Userspace),你可以将远程目录挂载到本地,像操作本地文件一样操作远程文件。
重点内容:sshfs user@remote_host:/remote/path /local/mount_point
4. 压缩传输数据**
使用 -C
选项,SSH 会在传输过程中对数据进行压缩,这可以显著提升低速网络环境下的连接速度。
重点内容:ssh -C user@remote_host
5. 控制持久化会话(ControlMaster)**
通过 ControlMaster 和 ControlPath 选项,你可以复用 SSH 连接,避免频繁输入密码和建立连接的开销。
重点内容:在 ~/.ssh/config
中添加 ControlMaster auto
和 ControlPath ~/.ssh/sockets/%r@%h:%p
6. 限制 SSH 会话命令**
使用 command=
选项,你可以限制 SSH 用户只能执行特定命令,增强安全性。
重点内容:ssh user@remote_host "command=ls -l /home/user"
(注意:实际使用时需配合更复杂的配置)
7. SSH 隧道逃逸**
在已经建立的 SSH 会话中,你可以通过 ~.
命令(波浪号加点)逃逸到 SSH 命令提示符,执行额外的 SSH 命令或管理隧道。
重点内容:在 SSH 会话中输入 ~.
掌握这些 SSH 命令的高级用法,将大大提升你在 Linux 系统管理和网络安全方面的能力。希望这些内容对你有所帮助!