关于使用 expect,导致 szrz 失效的问题

2020-12-26 15:09:14 +08:00
 15hop

背景:

访问远程服务器是通过跳板机的方式,每次登录都需要输一遍密码,很是繁琐。所以使用 expect 这个交互式脚本语言,来自动输入密码登录跳板机,再执行 ssh 命令登录远程服务器。但是这样带来了另一个问题,就是 szrz 命令不能使用了

具体现象:

在远程服务器执行 rz,可以跳出文件选择窗口,并上传文件,但是上传完成后,在当前目录下找不到文件

尝试解决:

经过搜索,有很多人都说通过使用 shell 脚本调用 expect 脚本并在 shell 脚本里指定`export LC_CTYPE=en_US`可以解决问题,但是我实测无效。现象和上面说的一样。

目前的替代方法:

使用 nc 的 socket 管道直接传输文件。但是这种方式稍微繁琐一些,需要客户端和服务器能直接通信,还要分别在客户端和服务端敲 nc 命令,不如 rz 来的方便

各位 v 友有使用 expect 的同时不让 szrz 失效的解决方案吗

713 次点击
所在节点    问与答
2 条回复
gstqc
2020-12-26 16:06:58 +08:00
1. OpenSSH 从 7.8 起加入了 proxyjump 的功能,如果跳板机也是通过 ssh 登录的话,使用 proxyjump 非常方便,可以把 proxyjump 写在 ssh 的配置文件里
2. 强烈建议使用证书登录
3. szrz 其实不好用,scp 更好
julyclyde
2020-12-28 11:02:27 +08:00
rz 有没有输出错误日志和错误返回码呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739180

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX