关于Tramp连接特殊跳板机的问题

hello, 大家好! 最近因为懒得在开发机上配置终端版emacs,所以打算采用tramp来编辑远程文件,但是在登录跳板机的时候碰到了一个问题: 输入跳板机密码之后直接hang住! 由于本公司对于跳板机的严格控制,所以跳板机上只能运行ssh命令,跳转到内网其他机器。我看tramp登录跳板机之后,会先运行exec env ENV=’’ HISTFILE=~/.tramp_history PROMPT_COMMAND=’’ PS1=#$\ PS2=’’ PS3=’’ /bin/sh 这个命令,我在跳板机上手动执行是提示 command not found。所以不知道大家有啥好的解决方法?

你跳板机上不能用 sh 吧。 如果你只能通过跳板机登录其他机器,那还是老老实实地用先在终端里面用 ssh 登录到目标机,然后反向隧道到本地主机,最后用 tramp 打开远程文件。反正你只能,也只需要在跳板机上 ssh 。具体流程参考:

多谢,刚才试了一下,公司对于开发机ssh外网机器好像也有限制,很尴尬,还是配置terminal 的emacs吧:joy:

反向隧道穿透跳板是否会有困难?不过 Tramp 也仅仅适用于少量&小文件编辑。

如果是一个复杂的项目,你需要补全、语法检测…,还是在远端配置一个 emacs 吧。

本地能配置用 ProxyCommand 直接登录到开发机,这样在 Emacs 里直接连接开发机就好了。至少我这边是这样的。

这是我的 ssh config,仅供参考。

Host aws-dev*
User dev-user
Hostname %h
PreferredAuthentications publickey
IdentityFile ~/.ssh/relay-key
ProxyCommand ssh -W %h:%p -l relay-user relay-server
1 个赞

我们公司自己写了一个跳板机登录远程机器的程序,比如叫login吧,我只能这样登录远程机器 ssh -t essh “login remote”