SSH 命令汇总
基本连接命令
# 基本连接
ssh username@hostname
# 指定端口连接 (默认22)
ssh -p port_number username@hostname
# 使用特定私钥文件连接
ssh -i /path/to/private_key username@hostname
# 启用详细模式 (调试用)
ssh -v username@hostname
高级连接选项
# 强制使用IPv4
ssh -4 username@hostname
# 强制使用IPv6
ssh -6 username@hostname
# 压缩传输数据 (慢速网络有用)
ssh -C username@hostname
# 指定加密算法
ssh -c aes256-ctr username@hostname
# 在后台运行 (用于端口转发)
ssh -f -N username@hostname
文件传输
# 从本地复制到远程 (SCP)
scp /local/path/file username@hostname:/remote/path/
# 从远程复制到本地
scp username@hostname:/remote/path/file /local/path/
# 递归复制整个目录
scp -r /local/dir username@hostname:/remote/dir
# 使用rsync同步文件 (更高效)
rsync -avz /local/path username@hostname:/remote/path
端口转发
# 本地端口转发 (本地端口映射到远程服务)
ssh -L local_port:remote_host:remote_port username@gateway_host
# 远程端口转发 (远程端口映射到本地服务)
ssh -R remote_port:local_host:local_port username@remote_host
# 动态端口转发 (SOCKS代理)
ssh -D local_port username@remote_host
SSH配置管理
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096
# 将公钥复制到远程主机
ssh-copy-id username@hostname
# 查看SSH指纹
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
# 测试SSH配置
ssh -T git@github.com # 测试GitHub连接
代理和跳板
# 通过跳板机连接目标主机
ssh -J jumpuser@jumphost:jumpport targetuser@targethost
# 使用ProxyCommand通过HTTP代理
ssh -o "ProxyCommand=nc -X connect -x proxyhost:proxyport %h %p" username@hostname
故障排除
# 检查SSH连接问题
ssh -vvv username@hostname
# 清除已知主机中的条目
ssh-keygen -R hostname
# 检查端口是否开放
telnet hostname 22
SSH配置文件 (~/.ssh/config) 示例
Host myserver
HostName server.example.com
User myusername
Port 2222
IdentityFile ~/.ssh/id_rsa_myserver
ForwardAgent yes
ServerAliveInterval 60
使用配置文件中定义的主机别名连接:
ssh myserver

944

被折叠的 条评论
为什么被折叠?



