SSH 速查表
一份可搜索、可打印的 SSH 参考——连接、密钥、配置、隧道、SCP/SFTP 和 agent 转发。免费。
连接
10ssh user@host
以 user 身份连接到 host
ssh -p 2222 user@host
在非默认端口连接
ssh -i ~/.ssh/id_ed25519 user@host
使用指定的身份密钥
ssh user@host 'uptime'
运行单条远程命令后退出
ssh -v user@host
调试用的详细输出(-vvv 更详细)
ssh -t user@host 'sudo -i'
强制伪终端(用于交互命令)
ssh -X user@host
启用 X11 转发
ssh -o ServerAliveInterval=60 user@host
发送保活包以避免超时
exit / Ctrl-D
关闭远程会话
~.
强制断开冻结的会话
密钥生成
8ssh-keygen -t ed25519 -C 'you@example.com'
生成现代的 Ed25519 密钥对
ssh-keygen -t rsa -b 4096
生成 4096 位 RSA 密钥对
ssh-keygen -t ed25519 -f ~/.ssh/work
将密钥写入指定文件
ssh-keygen -p -f ~/.ssh/id_ed25519
更改现有密钥的口令
ssh-keygen -y -f ~/.ssh/id_ed25519
从私钥打印公钥
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
显示密钥指纹
ssh-keygen -lv -f ~/.ssh/id_ed25519.pub
显示指纹 randomart 图像
ssh-keygen -R host
从 known_hosts 中移除主机密钥
安装公钥
7ssh-copy-id user@host
将默认公钥复制到服务器
ssh-copy-id -i ~/.ssh/work.pub user@host
复制指定的公钥
ssh-copy-id -p 2222 user@host
通过自定义端口复制密钥
cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
缺少 ssh-copy-id 时手动复制
chmod 700 ~/.ssh
修正 .ssh 目录的权限
chmod 600 ~/.ssh/authorized_keys
修正 authorized_keys 的权限
pbcopy < ~/.ssh/id_ed25519.pub
将公钥复制到剪贴板(macOS)
SSH 配置(~/.ssh/config)
10Host myserver
别名:用 `ssh myserver` 连接
HostName 203.0.113.10
别名对应的真实主机名或 IP
User deploy
此主机的默认用户名
Port 2222
此主机的默认端口
IdentityFile ~/.ssh/work
此主机使用的密钥
IdentitiesOnly yes
仅提供列出的密钥
ForwardAgent yes
将 SSH agent 转发到此主机
Host *.example.com
对域名的通配符匹配
Host *
所有主机的全局默认值
ServerAliveInterval 60
所有主机的保活间隔
端口转发 / 隧道
7ssh -L 8080:localhost:80 user@host
本地:通过本地 8080 访问 host:80
ssh -L 5432:db.internal:5432 user@host
经服务器本地转发到第三台主机
ssh -R 9000:localhost:3000 user@host
远程:将本地 3000 暴露为 host:9000
ssh -D 1080 user@host
动态:本地端口 1080 上的 SOCKS 代理
ssh -N -L 8080:localhost:80 user@host
仅隧道,不运行远程 shell
ssh -f -N -L 8080:localhost:80 user@host
在后台打开隧道
ssh -g -L 8080:localhost:80 user@host
允许其他主机使用本地转发
跳板机 / 堡垒机
5ssh -J jump@bastion user@target
经堡垒机跳转到目标
ssh -J h1,h2 user@target
串联多个跳板机
ProxyJump bastion
等价于 -J 的配置写法
ProxyCommand ssh -W %h:%p bastion
较旧的基于 ProxyCommand 的跳转
ssh -o ProxyJump=bastion user@target
内联 ProxyJump 选项
文件传输(scp 与 sftp)
7scp file user@host:/path/
将本地文件复制到服务器
scp user@host:/path/file .
将远程文件复制到当前目录
scp -r dir/ user@host:/path/
递归复制目录
scp -P 2222 file user@host:/path/
通过自定义端口复制(注意大写 -P)
sftp user@host
启动交互式 SFTP 会话
put localfile / get remotefile
在 SFTP 内上传 / 下载
rsync -avz -e ssh dir/ user@host:/path/
通过 SSH 高效同步(可续传)
ssh-agent 与转发
7eval "$(ssh-agent -s)"
在当前 shell 中启动 agent
ssh-add ~/.ssh/id_ed25519
向 agent 添加密钥
ssh-add -l
列出 agent 中已加载的密钥
ssh-add -D
从 agent 移除所有密钥
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
将口令存入 macOS 钥匙串
ssh -A user@host
为此连接转发 agent
ForwardAgent yes
等价于 agent 转发的配置写法
没有条目匹配“:q”。
需要帮助?
使用此工具时遇到问题?请告诉我们的团队。