SIFT / KNOWLEDGE BASE

知识 Wiki 总览 / SSH 与远程连接

常用字段说明

更新于 2026-11-07条目链接

在ssh <username>@ <server_address>的基础上,还可以有更多操作,格式大致为:

ssh <选项> <username>@<server_address> <远程命令>

下面是一些主要的字段:

-p: port。指定 SSH 服务端口,默认是22。HPC如果在网关配置了端口映射,就在这里写映射后的端口。

# 未指定端口时默认使用22
ssh <username>@<server_address>
# 指定服务端口或映射后的端口
ssh -p <port> <username>@<server_address>

-l: login。指定登录用户。

# 二者在作用上无异
ssh <username>@<server_address>
ssh -l <username> <server_address>

-i: identity。指定用于公钥认证的私钥文件:

ssh -i ~/.ssh/id_ed25519 <username>@<server_address>

-F: File。指定另一份 SSH 客户端配置文件:

ssh -F ~/.ssh/hpc_config <username>@<server_address>

-J: jump。指定跳板机,先连接跳板机,再连接目标主机:

ssh -J <jump_user>@<jump_server>:<jump_port> <username>@<server_address>

-4 / -6: 强制使用 IPv4 / IPv6 地址连接:

ssh -4 <username>@<server_address>
ssh -6 <username>@<server_address>

-v: verbose。输出连接调试信息;可以重复增加详细程度,最多常用到 -vvv:

ssh -v <username>@<server_address>
ssh -vvv <username>@<server_address>

-G: 显示应用 Host 和 Match 配置规则后的参数,然后退出,不会建立连接:

ssh -G <host_alias>

-V: 显示 OpenSSH 客户端版本:

ssh -V

-o: option。临时指定一项配置,格式为“配置项=值”:

ssh -o ConnectTimeout=10 <username>@<server_address>

-N: 只建立连接,不运行远程命令;常和端口转发一起使用:

ssh -N -L 8080:127.0.0.1:80 <username>@<server_address>

-t: 请求分配远程终端;重复两次 -tt 可强制分配终端。

ssh -t <username>@<server_address>
ssh -tt <username>@<server_address>

-T: 不分配远程终端,常用于脚本或自动化连接:

ssh -T <username>@<server_address>

-L: local。将本地端口转发到远端可访问的服务:

ssh -L 8080:127.0.0.1:80 <username>@<server_address>
# 本机访问 127.0.0.1:8080,即可连到远端的 127.0.0.1:80

-R: remote。将远端端口转发到本机可访问的服务:

ssh -R 9000:127.0.0.1:3000 <username>@<server_address>

-D: dynamic。建立动态端口转发,提供 SOCKS 代理:

ssh -D 1080 <username>@<server_address>

-A: 转发本机 SSH Agent。只对可信任的远程主机启用;远端进程可能借此使用本机已加载的密钥:

ssh -A <username>@<server_address>

-C: 请求压缩传输;慢速网络下有时有帮助,快速网络下可能变慢:

ssh -C <username>@<server_address>

配置文件~/.ssh/config中的常用配置项:

Host jump
    HostName jump.example.com
    User alice
    Port 2222

Host hpc
    HostName server.example.com
    User alice
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
    ProxyJump jump
    ConnectTimeout 10
    ServerAliveInterval 60
    ServerAliveCountMax 3

Host是连接时使用的别名;HostName是实际主机名;User、Port和IdentityFile分别指定用户、端口和私钥。ProxyJump指定跳板机;ConnectTimeout设置连接超时;ServerAliveInterval和ServerAliveCountMax用于探测失联连接。配置后可直接运行:

ssh hpc

参考:OpenSSH ssh(1) 手册 · OpenSSH ssh_config(5) 手册