SSH 命令速查表

SSH 最常用命令的快速参考,按功能分组,涵盖连接、密钥、传输、转发、配置和安全加固

基本连接

ssh user@host 连接远程服务器
ssh -p 2222 user@host 指定端口连接
ssh -i ~/.ssh/key user@host 指定私钥连接
ssh user@host 'command' 执行远程命令
ssh -J jump user@target 通过跳板机连接
ssh -v user@host 调试模式连接

密钥管理

ssh-keygen -t ed25519 -C "email" 生成 Ed25519 密钥(推荐)
ssh-keygen -t rsa -b 4096 生成 RSA 4096 位密钥
ssh-copy-id user@host 复制公钥到远程服务器
ssh-add ~/.ssh/key 添加密钥到 agent
ssh-add -l 列出 agent 中的密钥
ssh-add -D 清除 agent 中所有密钥
eval $(ssh-agent -s) 启动 SSH agent
ssh-keygen -R hostname 移除 known_hosts 中的主机记录

文件传输

scp file user@host:/path/ 上传文件到远程
scp user@host:/path/file ./ 从远程下载文件
scp -r dir/ user@host:/path/ 递归上传目录
sftp user@host 交互式文件传输
sftp> put local_file sftp 中上传文件
sftp> get remote_file sftp 中下载文件
rsync -avz -e ssh src/ user@host:dest/ 增量同步(推荐)

端口转发

ssh -NL 8080:localhost:80 user@host 本地转发(访问远程服务)
ssh -NR 8080:localhost:3000 user@host 远程转发(暴露本地服务)
ssh -ND 1080 user@host 动态转发(SOCKS 代理)
ssh -fNL 3307:db:3306 user@bastion 后台运行本地转发
ssh -NL 3307:db:3306 -L 6380:redis:6379 user@host 多端口同时转发

配置管理

vim ~/.ssh/config 编辑 SSH 客户端配置
chmod 600 ~/.ssh/config 设置配置文件权限
chmod 700 ~/.ssh 设置 .ssh 目录权限
chmod 600 ~/.ssh/id_* 设置私钥文件权限
ssh -O check user@host 检查连接复用状态
ssh -O exit user@host 关闭复用连接
ssh-keyscan host >> ~/.ssh/known_hosts 预添加主机密钥

安全加固

PermitRootLogin no 禁止 root 登录
PasswordAuthentication no 禁用密码认证
AllowUsers user1 user2 用户白名单
MaxAuthTries 3 限制认证尝试次数
Port 2222 修改默认端口
sshd -t 测试配置文件语法
systemctl restart sshd 重启 SSH 服务