在远程机器上使用本地 shell

use*_*366 7 linux shell ssh

zsh在我的本地机器上使用了一堆自定义。我最近开始使用在私人服务器上的homemaker存储库中管理我所有的点文件git。然而,当我ssh进入远程服务器时,我总是觉得很尴尬,我要么需要忍受本地配置,要么浪费时间克隆私有git仓库和运行脚本。将一堆个人文件下载到我正在维护的服务器上也让我感到不专业,特别是如果我不是主要管理员。

似乎必须有更好的方法。是否有某种系统允许我运行我精心配置的本地 shell,但所有实际操作(文件 I/O、运行命令/commadn stdio 等)都运行在某种ssh基于接口的接口上?我正在想象服务器上的某种超级最小的非人类友好外壳(为了这个问题,让我们称之为syssh),它只公开现代外壳可以使用的所有系统调用,并在客户端上进行修改读取本地配置但向syssh远程系统发送命令的shell 。

这样,服务器就不必关心我的首选外壳、提示行主题、颜色首选项、终端功能、字体(用于电力线等)、选项卡完成首选项等。此外,网络延迟不会减慢我的打字速度,因为readline()是发生在当地;唯一会滞后的是命令的结果(和选项卡完成等)。我知道mosh通过一系列关于 shell 行为方式的启发式和假设来解决这个问题,但它似乎有点 hackish。

在我看来,运行 shellssh就像使用一个 web 应用程序,其中每个按钮都是一个链接或表单提交按钮,mosh是具有一些缓存和差分压缩方案的同一个应用程序,我建议的是就像使用 Javascript 操作显示和 AJAX 调用以在需要时获取/发布数据的现代 web 应用程序一样。

这种东西是否存在,如果不存在,为什么?是否有任何已知的开发努力来实现这一点?

Wil*_*Hay 1

听起来你想要的是微软的,Web Services for Management这是远程处理的基础powershell。适用于 Linux 的 Powershell 已存在并且已获得 MIT 许可,因此理论上应该可以提取必要的代码并将其转换为zsh. 当然不是每个人都会安装 powershell,但也不是每个人都会安装 zsh。

简而言之,您想要的东西存在,但(还)不存在zsh