
Я использую zsh
с кучей настроек на локальной машине. Недавно я начал использоватьhomemaker
для управления всеми моими dotfiles в git
репозитории на частном сервере. Однако мне всегда кажется неловким, что когда я ssh
захожу на удаленный сервер, мне нужно либо мириться с локальной конфигурацией, либо тратить время на клонирование частного git
репозитория и запуск скриптов. Мне также кажется непрофессиональным загружать кучу личных файлов на сервер, который я обслуживаю, особенно если я не являюсь главным администратором.
Кажется, должен быть лучший способ.Существует ли какая-то система, которая позволяет мне запускать тщательно настроенную локальную оболочку, но при этом все реальные действия (ввод-вывод файлов, запуск команд/commandn stdio и т. д.) выполняются через некий ssh
интерфейс на основе -shell?Я представляю себе некую супер-минимальную, недружественную человеку оболочку (ради этого вопроса давайте назовем ее syssh
) на сервере, которая просто предоставляет все системные вызовы, которые может использовать современная оболочка, а на клиенте — модифицированную оболочку, которая считывает локальные конфигурации, но отправляет syssh
команды удаленной системе.
Таким образом, серверу не нужно заботиться о моей предпочитаемой оболочке, теме promptline, цветовых предпочтениях, возможностях терминала, шрифтах (для powerline и т. д.), предпочтениях автодополнения табуляцией и т. д. Кроме того, задержка сети не замедлит мой набор текста, поскольку readline()
это происходит локально; единственное, что будет отставать, — это результаты команд (и автодополнение табуляцией и т. д.). Я знаю, что mosh
эта проблема решается с помощью кучи эвристик и предположений о том, как будет вести себя оболочка, но это кажется немного хакерским.
Мне кажется, что запуск оболочки ssh
похож на использование веб-приложения, где каждая кнопка является ссылкой или кнопкой отправки формы, mosh
это то же самое приложение с некоторым кэшированием и схемой дифференциального сжатия, а то, что я предлагаю, будет похоже на современное веб-приложение с Javascript, управляющим отображением, и вызовами AJAX для получения/отправки данных при необходимости.
Существует ли такая вещь, и если нет, то почему? Известны ли какие-либо разработки в этом направлении?
решение1
Похоже, вам нужна версия Microsoft, Web Services for Management
которая является основой для powershell
удаленного взаимодействия. Powershell для Linux существует и лицензирован MIT, поэтому теоретически должно быть возможно извлечь необходимый код и превратить его в патч для zsh
. Конечно, не у всех установлен powershell, но не у всех установлен zsh.
Короче говоря, то, что вы хотите, существует, но (пока) не для zsh
.