你们的远程emacs使用方案是什么?

看到另一个贴中提到TUI GUI。。。话题不一致,单开一个问一下。

你们用emacs GUI的时候,如果要在远程服务器上编辑文本,写代码。用什么方案?tramp?还是在vnc里用远程桌面?还是其他更好的办法。

2 个赞

tramp 太卡, 现在用 upload , 这是个痛点 :sweat:

1 个赞

我还是利用tramp, 远程编辑,开交互的python窗口等都可以. 速度看情况, 可以忍耐.

远程服务器场景多是在公司,在公司多是有堡垒机中转。。。

所以 Tramp 这类需要 ssh 的,都没希望了,就放弃远程写代码了,临时改一下直接 emacs -q -nw

1 个赞

本机 GUI Emacs

用 git 同步代码

server vim 跑一跑程序

1 个赞

在本地写代码,rsync 同步到远程服务器上编译运行

1 个赞

这个索引导航之类的也支持么?

tramp我很久很久之前用过。但是当时索引导航之类的不方便。就放弃了。

我就是因为堡垒机这个场景。彻底放弃了gui。

lsp-bridge 内建远程代码编辑、代码补全、代码定义跳转等一些功能的支持, 目前需要基于ssh的机制和远程服务器建立连接的。

如果有堡垒机, 除了 terminal 的方式, 有什么网络连接的方式吗?

理论上如果可以连接的话, lsp-bridge 也可以增加支持。

堡垒机支持起来应该也不难。只需要ssh的时候支持自定义会话动作即可。 堡垒机ssh登录上去之后是一个文本界面,选1 2 3,或者输入什么。就跳转到目的地了。

vscode好像不能支持,它只有设置一个proxy。不支持会话。

理论上只要 ssh 能连通,中间的交互步骤在技术上也是可以解决的。

而且如果访问的资源是确定的,那么还可以跳过交互步骤直达,例如:

$ ssh demo@test@[email protected] -p2222
# demo.jumpserver.org 为堡垒机域名
# 2222 为 ssh 访问端口
# demo 是堡垒机登录的账号,demo 账号的密码是 jumpserver
# test 是资产的登录账号
# test_ssh 是资产的 ip 或者 域名(内部改写了 hosts)

关键在于,公司如果有堡垒机,那么就有必要要问一下是否允许用本地编辑器连上去编辑,因为这样相当于从服务器上下载资源到本地。没问清楚就连上去,有可能违反了公司的资安规定。

如果允许本地编辑器连上去编辑,像 jumpserver 还有针对 VScode 的"贴心"设置:

$ cat /opt/jumpserver/config/config.txt
ENABLE_LOCAL_PORT_FORWARD=True   # 是否开启本地转发 (目前仅对 vscode remote ssh 有效果) v2.11 新增
ENABLE_VSCODE_SUPPORT=True       # 是否开启 针对 vscode 的 remote-ssh 远程开发支持
                                 # ( 前置条件: 必须开启 ENABLE_LOCAL_PORT_FORWARD ) v2.11 新增。
                                 # ( 注意: vscode 的连接操作,无审计功能 )
1 个赞

没用过跳板机类的场景,ssh-deploy 支持ssh 连通,场景要自己摸索了

deployment-configuration-examples

没有了 ssh,Emacs 本身要怎么编辑远程的文件似乎也成了问题,这个只靠 lsp bridge 也不好实现了吧🤣

堡垒机都支持vscode了。这个挺好。如果它支持vscode,不知道能不能利用一下,emacs模拟一下vscode的ssh。

即使有 jump server,ssh 也能一条命令搞定的,所以理论上 emacs GUI 是可行的,但我一般用的命令行模式,也很顺手

如我在 #12 楼所说,如果你确定堡垒机后面的资源,可以 ssh 直达,不必交互。以 jumpserver 为例:(用户 demo 密码 jumpserver,你现在就可以试试)

$ ssh demo@test@[email protected] -p2222
demo@test@[email protected]'s password:
开始连接到 test(test)@jms_gw  0.7
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-78-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.
test@eaaab210e843:~$ ls -a
.  ..  .bash_logout  .bashrc  .profile

Emacs tramp 连上去编辑也没有问题: C-x C-f /ssh:demo@test@[email protected]#2222:/home/test/.profile

image

关键在于公司是否允许你这么做,不允许的话,就算你用技术手段达成了,那也是违反公司规定。

所以,决定你用什么远程方案的,不单单是技术问题。

1 个赞

堡垒机很多情况是带会话的

很多堡垒机是带会话的。而且会话菜单自己配置,各不相同。有的在登录的时候还需要输入双因素验证的动态key。

你试一下这两条命令:(密码 jumpserver)

ssh [email protected] -p2222
ssh demo@test@[email protected] -p2222