SSH 命令参考
SSH 远程连接、密钥管理、端口转发、文件传输和安全配置
命令列表
- ssh 连接 通过 SSH 协议安全地连接到远程服务器,支持密码和密钥认证
- ssh-keygen 生成、管理和转换 SSH 认证密钥对,支持多种加密算法
- ssh-copy-id 将本地公钥复制到远程服务器的 authorized_keys 文件中,实现免密登录
- ssh config SSH 客户端配置文件(~/.ssh/config),为不同主机设置连接参数,简化 SSH 命令
- ssh tunnel 通过 SSH 建立加密隧道进行端口转发,安全访问远程网络中的服务
- scp 通过 SSH 协议在本地和远程主机之间安全复制文件和目录
- ssh-agent SSH 认证代理,在内存中保存解密后的私钥,避免重复输入密钥密码
- ssh ProxyJump 通过跳板机(堡垒机)连接内网服务器,无需在跳板机上存储密钥
- sftp 基于 SSH 的安全文件传输协议,提供交互式文件管理界面
- ssh-keyscan 获取远程 SSH 服务器的公钥,用于管理 known_hosts 文件
- ssh-add 向 SSH 认证代理(ssh-agent)添加或管理私钥
- SSH 本地端口转发 将本地端口的流量通过 SSH 隧道转发到远程网络中的目标服务,常用于访问内网数据库、Web 服务等
- SSH 远程端口转发 将远程服务器端口的流量转发到本地网络,常用于将本地开发服务暴露到公网
- SSH 连接复用 通过 ControlMaster 复用已有的 SSH 连接,加速后续连接并减少认证次数
- SSH 安全加固 SSH 服务端安全配置最佳实践,防止暴力破解和未授权访问
常见场景
- 如何配置 SSH 免密登录? 每次 SSH 连接都要输入密码很麻烦,想配置密钥认证实现免密登录
- 如何通过 SSH 隧道访问远程数据库? 数据库在内网不能直接访问,需要通过跳板机/SSH 隧道连接远程 MySQL/PostgreSQL/Redis
- 如何管理多台服务器的 SSH 配置? 有很多台服务器需要管理,每次输入用户名、IP、端口、密钥很麻烦,想统一管理
对比
- SSH 密码认证 vs 密钥认证:该用哪种? 密钥认证更安全、更方便,密码认证仅作为初始配置或备用方案