rmdir.cn
🔑

SSH

SSH 登录认证、端口转发与文件传输

登录与密钥

5 条

登录远程主机

ssh [选项] [用户名@]主机 [-p 端口]

在远程主机执行一条命令后返回

ssh [用户名@]主机 '命令'

生成 SSH 密钥对

ssh-keygen -t 算法 [-C 注释] [-f 输出路径]

把公钥安装到远程主机

ssh-copy-id [-i 公钥文件] [用户名@]主机

在会话中缓存私钥口令

eval "$(ssh-agent -s)" && ssh-add ~/.ssh/私钥

配置与排查

4 条

为常用主机定义别名与参数

Host 别名
    HostName 实际地址
    User 用户名
    IdentityFile ~/.ssh/私钥

输出详细的连接协商过程

ssh -vvv [用户名@]主机

查看与移除已知主机指纹

ssh-keygen -R 主机
ssh-keygen -F 主机

计算密钥指纹与类型

ssh-keygen -lf 公钥文件

端口转发

5 条

把本地端口转发到远端可访问的地址

ssh -L [本地地址:]本地端口:目标主机:目标端口 跳板主机

把远端端口转发到本地服务

ssh -R [远端地址:]远端端口:目标主机:目标端口 远端主机

启动 SOCKS 代理

ssh -N -D [本地地址:]本地端口 远端主机

通过跳板机连接目标主机

ssh -J [用户@]跳板主机 [用户@]目标主机

避免空闲连接被中间设备断开

ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -N -L 本地端口:目标:端口 主机

文件传输

3 条

在本地与远程之间复制文件

scp [-r] 源路径 [用户名@]主机:目标路径

基于 SSH 的交互式文件传输

sftp [用户名@]主机
> put 本地文件
> get 远端文件

增量同步文件到远程主机

rsync -avz --delete -e ssh 源目录 [用户名@]主机:目标目录