Использование локальной оболочки на удаленной машине

Использование локальной оболочки на удаленной машине

Я использую 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.

Связанный контент