ssh / scp
基本语法(Synopsis)
ssh [OPTIONS] [USER@]HOST [COMMAND]
scp [OPTIONS] SOURCE TARGETssh 提供加密远程登录、远程命令、跳板机与端口转发;scp 通过 SSH 复制文件。密钥创建与客户端配置见 SSH 密钥与客户端配置,服务端配置与安全加固见 Linux 网络与 SSH。
ssh user@example.com # 登录
ssh -p 2222 user@example.com # 指定端口
ssh -v user@example.com # 查看握手和认证过程
ssh -J bastion.example.com internal-host # 通过跳板机
ssh host 'uname -a' # 执行远程命令
scp file.txt user@example.com:/tmp/ # 上传文件
scp user@example.com:/tmp/file.txt ./ # 下载文件
scp -P 2222 file.txt user@example.com:/tmp/ # scp 的端口选项是大写 P本地端口转发
ssh -N -L 8080:127.0.0.1:80 user@example.com此命令在本机监听 127.0.0.1:8080,通过 SSH 让远端主机访问其视角下的 127.0.0.1:80。
建议把常用目标写进 ~/.ssh/config:
Host app-server
HostName 192.0.2.10
User deploy
Port 22
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesWarning
首次连接必须核对主机密钥指纹。出现主机密钥变化时,先确认服务器重装或密钥轮换,不要直接删除
known_hosts记录。
常用选项
| 选项 | 含义 |
|---|---|
ssh -p PORT | 指定 SSH 端口。 |
ssh -i FILE | 指定私钥。 |
ssh -J HOST | 通过跳板机连接。 |
ssh -L LPORT:HOST:RPORT | 本地端口转发。 |
ssh -N | 不执行远程命令,常与转发合用。 |
ssh -v / -vvv | 输出逐级增加的调试信息。 |
scp -P PORT | 指定 SSH 端口;注意是大写 P。 |
大目录或需要断点、增量同步时优先使用 rsync。