在 Linux 世界里,SSH(Secure Shell)是连接远程服务器和进行安全通信的基石。然而,除了基本的登录功能外,SSH 还隐藏着许多强大的命令用法,能够极大地提升你的工作效率和安全性。今天,就让我们一起探索 Linux 下你可能还不知道的 7 个 SSH 命令高级用法。
-
SSH 端口转发:
- 重点:
ssh -L [本地端口]:[远程主机]:[远程端口] 用户名@远程服务器
- 描述:这个命令可以实现本地端口到远程端口的转发,非常适合访问内网资源或绕过防火墙限制。比如,将本地 9999 端口转发到远程服务器的 3306 端口(MySQL默认端口),即可在本地通过 9999 端口访问远程 MySQL 数据库。
- 重点:
-
SSH 隧道:
- 重点:通过端口转发实现数据加密传输,创建安全的“隧道”。
- 描述:SSH 隧道不仅限于端口转发,它还可以用于安全地穿越不安全的网络,保护数据传输的机密性和完整性。
-
SSH 跳板机访问:
- 重点:
ssh -t 用户名@跳板机 ssh 用户名@目标服务器
- 描述:当你需要通过一台中间服务器(跳板机)才能访问目标服务器时,这个命令非常有用。
-t
选项分配一个伪终端,确保命令在目标服务器上执行。
- 重点:
-
SSH 免密登录:
- 重点:使用 SSH 密钥对实现免密码登录。
- 描述:通过生成 SSH 密钥对(
ssh-keygen
),并将公钥添加到远程服务器的~/.ssh/authorized_keys
文件中,即可实现免密码登录,提高安全性和便捷性。
-
SSH 压缩数据传输:
- 重点:
ssh -C 用户名@远程服务器
- 描述:
-C
选项启用数据压缩,对于带宽有限或传输大量数据的情况,可以显著提高传输效率。
- 重点:
-
SSH 批量执行命令:
- 重点:结合
xargs
或循环结构在多个服务器上执行相同命令。 - 描述:通过将服务器列表传递给 SSH 命令,你可以轻松地在多台服务器上执行相同的操作,如系统更新、配置同步等。
- 重点:结合
-
SSH 反向隧道:
- 重点:
ssh -R [远程端口]:localhost:[本地端口] 用户名@远程服务器
- 描述:与端口转发相反,反向隧道允许你将远程服务器的端口转发到本地机器,这在某些需要远程访问本地资源的场景下非常有用。
- 重点:
掌握这些 SSH 命令的高级用法,将让你的 Linux 系统管理变得更加高效和安全。不妨现在就试试看吧!