新闻资讯
领先云端方案商,专注云桌面、云手机研发,凭核心虚拟化技术与云端算力,
打造安全高效数字化平台,提供全周期支持。
分类
相关文章
热门标签

图文跳板机如何传文件 包含错误排查清单与日志定位技巧示例

2026年6月20日

1.

准备工作与环境验证

- 检查本地、有跳板机(jumphost)与目标服务器三端的网络连通性;
- 确认三端SSH账号、密钥(id_rsa/id_ed25519)与权限设置(~/.ssh 700、~/.ssh/authorized_keys 600);
- 在本地测试:ssh -J user@jumphost user@dest -v 测试可达性与认证。小分段:准备私钥、Agent、已知主机(known_hosts)备份。

2.

方法一:用SCP的ProxyJump(推荐简单场景)

- 命令示例:scp -o ProxyJump=jumphost_user@jumphost -i ~/.ssh/id_rsa localfile user@dest:/remote/path;
- 说明:-o ProxyJump 等价于 -J,SSH 直接在客户端建立跳板隧道,适合OpenSSH 7.3+;
- 小分段:若跳板机需要非标准端口,写成 -o "ProxyJump=jumphost_user@jumphost:2222"。

3.

方法二:rsync over SSH 经跳板机(适合大文件增量同步)

- 命令示例:rsync -avz -e "ssh -J user@jumphost" localdir/ user@dest:/remote/dir/;
- 说明:rsync 结合 -J 可以高效做差异传输,避免重复传输大文件;
- 小分段:可加 --partial --progress 保留中断点并显示进度。

4.

方法三:通过本地端口转发再SCP或SFTP(兼容老版本SSH)

- 建立本地隧道:ssh -L 2222:dest:22 user@jumphost -N &;
- 然后本地执行:scp -P 2222 -i ~/.ssh/id_rsa localfile user@localhost:/remote/path;
- 小分段:用ssh -fN省后台运行,结束后kill对应SSH进程。

5.

密钥与安全设置要点

- 推荐使用公私钥认证,禁止密码登录(sshd_config: PasswordAuthentication no);
- 小心AgentForwarding:若使用ssh -A,确保跳板机受信任或关闭以防泄露私钥;
- 小分段:管理known_hosts,避免Host key mismatch,可用 ssh-keyscan 快速更新。

6.

常见错误排查清单(快速清单)

- 认证失败:检查私钥路径、权限(~/.ssh 700、文件600)、authorized_keys;
- 连接超时:检查防火墙、端口与路由;
- 主机名解析错误:试用IP直连并检查 /etc/hosts;
- 权限问题:目标目录写权限、SELinux上下文;
- 小分段:还要检查跳板机上sshd_config是否允许端口转发与ForwardAgent配置。

7.

日志定位技巧与示例命令

- 增加调试输出:ssh/scp/rsync 均支持 -v、-vv、-vvv 查看握手、密钥交换详情(示例:ssh -J user@jumphost user@dest -vvv);
- 服务器端日志:Debian/Ubuntu:sudo tail -n 200 /var/log/auth.log;RHEL/CentOS:sudo tail -n 200 /var/log/secure;
- 使用systemd:sudo journalctl -u sshd -f 实时跟踪;小分段:定位关键词 grep "sshd"、"Accepted"、"Failed"、"Connection closed" 等。

8.

排查示例一:身份验证失败(Permission denied)

- 步骤1:本地用 -vvv 重试,观察失败阶段(key被忽略还是被拒绝);
- 步骤2:登录跳板机,查看目标主机上的 /home/user/.ssh/authorized_keys 是否包含公钥,权限是否为600;
- 步骤3:查看目标机 /var/log/auth.log 或 /var/log/secure,grep "Failed password" 或 "publickey" 定位原因;小分段:如果是Agent问题,试 ssh-add -l 检查Agent加载的密钥。

9.

排查示例二:scp/rsync 连接超时或数据卡住

- 步骤1:检测端口连通性:nc -vz jumphost 22 / nc -vz dest 22(在跳板机上检测目标端口);
- 步骤2:在跳板机上用 tcpdump 抓包 sudo tcpdump -i any host dest and port 22 看是否有流量;
- 步骤3:检查防火墙(iptables/ufw/firewalld)和云安全组,确认端口和源IP被允许;小分段:若出现MTU问题可尝试降低MTU或使用rsync --partial --inplace。

10.

问答:如何稳定传输超大文件(几十GB)?

问:使用跳板机传输超大文件时,哪种方式最稳妥?
答:优先用rsync over SSH(ssh -J 支持),加上 --partial --inplace --bwlimit 根据带宽限制速率;若可能在跳板机与目标之间直接运行rsync pull/push可减小端到端中断影响;同时配合screen/tmux保持会话。

11.

问答:如何保持文件权限与属主信息?

问:通过跳板机传文件能保留权限、时间戳和属主吗?
答:scp 会保留时间戳(-p)与权限,但属主只有在目标以root执行rsync或scp时才能保留。建议用rsync -a 保留权限与时间戳,若需保留属主使用rsync -a --super 在目标以有权限的用户运行。

12.

问答:scp/scp卡住或无响应怎样快速定位?

问:scp 在某一步卡住,没有错误输出,我怎样快速找原因?
答:首先加 -v 或 -vvv 重现查看卡在哪个阶段;其次在跳板机和目标用 tcpdump/ss/netstat 查看端口连接状态;检查是否因防火墙丢包或服务器磁盘满(df -h);如是SSH握手卡住,查看sshd日志(/var/log/auth.log 或 journalctl)。


来源:图文跳板机如何传文件 包含错误排查清单与日志定位技巧示例

TG客服-1 TG客服-2 在线客服