这个索引导航之类的也支持么?
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 的连接操作,无审计功能 )
没有了 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
关键在于公司是否允许你这么做,不允许的话,就算你用技术手段达成了,那也是违反公司规定。
所以,决定你用什么远程方案的,不单单是技术问题。
堡垒机很多情况是带会话的
很多堡垒机是带会话的。而且会话菜单自己配置,各不相同。有的在登录的时候还需要输入双因素验证的动态key。
对,就是这个模样。有时候公司会自己定义一个菜单,进去之后直接选 1 2 3 进入不同的服务器。有时候还会分层次。有时候连堡垒机还需要输入动态口令。
如果能支持自定义这个会话的动作。比如连上之后自动输入1 3.就可以了。这样进入不同的服务器自定义一个会话。然后直接进去。
总结一下:目前emacs远程没有特别好的方案。
如果能弄成vscode那样方便,绝对是个杀手级应用。
我现在正在用 tramp,没跳板机的话可以,没折腾过跳板机
感觉 tramp 比直接 ssh 还要快,我 ssh 上去有时候还要卡一下
有没有大佬能做一个像vscode 那种远程连接的解决方案呀?求求了
这是一个需求。不过估计没那么容易,工作量也应该很大。vs相当于在远端装了一个server,如果emacs也这么搞,那整个结构都变了。
lsp-bridge就已经做到了