ssh / scp

基本语法(Synopsis)

ssh [OPTIONS] [USER@]HOST [COMMAND]
scp [OPTIONS] SOURCE TARGET

ssh 提供加密远程登录、远程命令、跳板机与端口转发;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 yes

Warning

首次连接必须核对主机密钥指纹。出现主机密钥变化时,先确认服务器重装或密钥轮换,不要直接删除 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。

官方资料