SSH 命令
SSH 常用命令速查,连接/密钥/端口转发/文件传输/安全加固,一键复制
共 45 个脚本
SSH 基本连接
使用用户名和密码(或密钥)登录到远程主机,回车后输入密码。
指定端口连接 (-p)
当服务器 SSH 监听非默认端口(如 2222)时,用 -p 指定端口。
指定登录用户名
通过 -l 选项或 user@host 形式指定登录用户,区别于当前系统用户。
后台运行隧道 (-f -N)
-f 登录后转入后台,-N 不执行远程命令,常用于维持端口转发隧道。
详细调试模式 (-v / -vvv)
输出连接、认证、密钥协商的详细过程,是排查登录失败的第一步。
超时与保活设置
ConnectTimeout 控制连接超时,ServerAliveInterval 定期发送心跳防止 NAT 断连。
生成 RSA 密钥对
生成 4096 位 RSA 密钥对,用于 SSH 免密登录。注意:-f 指定路径时若文件已存在会被覆盖。
生成 Ed25519 密钥(推荐)
Ed25519 比 RSA 更短更快更安全,是现代 OpenSSH 推荐的密钥类型。
查看密钥指纹
查看公钥或私钥的指纹,用于核对服务器指纹或对比密钥是否一致。
复制公钥到远程主机
将本地公钥追加到远程主机的 ~/.ssh/authorized_keys,实现免密登录。
密钥格式转换
将 OpenSSH 格式私钥转为旧版 PEM 格式(部分云平台 / 旧客户端需要),或从 PEM 导回。
将密钥加入 ssh-agent
ssh-agent 缓存已解密的私钥,避免每次连接都输入 passphrase。
~/.ssh/config 主机别名
为常用主机定义别名,之后用 ssh myserver 即可连接,免去记 IP、端口和密钥。
跳板机配置 (ProxyJump)
通过跳板机(堡垒机)访问内网机器,ProxyJump 是 OpenSSH 7.3+ 的简洁写法。
通配符与全局默认配置
Host * 定义所有主机的默认值,配合具体 Host 块实现配置复用。
清理 known_hosts 中的旧记录
主机重装系统后指纹变化会导致连接被拒。用 ssh-keygen -R 安全移除旧记录。
首次连接指纹策略
控制首次连接是否自动接受主机指纹,StrictHostKeyChecking=accept-new 较安全。
本地端口转发 (-L)
把远程服务的端口映射到本地。例:远程 MySQL(3306) 映射到本地 13306,再用本地客户端连接。
远程端口转发 (-R)
把本地端口映射到远程主机,用于让外部能访问内网 / 本机的服务(内网穿透)。
动态 SOCKS 代理 (-D)
在本地建立 SOCKS5 代理,所有流量经远程主机发出,常用于科学上网或临时代理。
命令行跳板机 (-J)
无需修改 config,直接用 -J 一次性指定跳板机访问目标机器。
scp 上传文件到远程
把本地文件或目录复制到远程主机。-r 递归复制目录,-P 指定端口。
scp 从远程下载文件
把远程文件或目录下载到本地,远程路径写在前,本地路径写在后。
rsync 增量同步
rsync 只传输变化的部分,适合大目录和频繁同步。-a 归档模式,-v 详细,-z 压缩。
rsync 删除与排除
--delete 删除目标中多余的文件实现镜像,--exclude 排除不需要同步的文件。
rsync 断点续传
-P 等价于 --partial --progress,大文件传输中断后可续传,不必从头开始。
sftp 交互式传输
sftp 提供交互式命令行,支持 ls/cd/get/put 等命令,比 scp 更灵活。
禁用密码登录
改为仅允许密钥登录,杜绝密码暴力破解。修改前务必确认密钥登录已可用。
禁用 root 直接登录
禁止 root 通过 SSH 直接登录,应先以普通用户登录再 sudo 提权。
修改默认端口
把 SSH 端口从 22 改为其他端口,可减少大量自动化扫描。改后连接需加 -p。
限制可登录用户
白名单机制,仅允许指定用户或用户组通过 SSH 登录,其他人一律拒绝。
限制认证尝试次数
MaxAuthTries 限制单次连接的认证失败次数,LoginGraceTime 限制登录超时。
Fail2Ban 防暴力破解
Fail2Ban 监控日志,对多次失败登录的 IP 自动封禁。jail 配置控制策略。
远程执行单条命令
在 ssh 后直接跟上命令,执行完立即返回,不会进入交互式 shell。
远程执行多条命令
用引号包裹多条命令,用分号、&& 或 || 串联。&& 表示前一条成功才执行下一条。
远程执行脚本块 (here-document)
用 here-document 把一段本地脚本传到远程执行,避免先上传文件再运行。
tmux 保持远程会话
tmux 让进程在断开连接后继续运行,重连后可恢复会话。长任务必用。
nohup 后台运行
nohup 让命令忽略挂断信号,断开 SSH 后进程继续运行,输出重定向到文件。
连接超时排查
连接卡住或超时的常见原因:网络不通、防火墙、端口错误、服务未运行。按步骤排查。
查看 sshd 日志
服务器端排查认证失败、配置问题,重点看 sshd 的日志输出。
测试 sshd 配置语法
重启 sshd 前先用 -t 检查配置语法,避免语法错误导致服务起不来把自己锁在外面。
telnet 测试端口连通性
用 telnet 快速判断远程端口是否开放、SSH 服务是否正常响应协议标识。
修复 SSH 目录权限
SSH 对权限非常敏感,权限过宽会拒绝密钥登录。这是免密登录失败的高频原因。
检查 known_hosts 冲突
主机指纹变化时报 OFFENDING KEY 错误。先用 ssh-keygen -F 定位冲突行,再决定移除还是核对真伪。
Agent 转发排查
开启 agent 转发后可在跳板机上直接用本地密钥访问第三台机器,无需把私钥放到跳板机。