Я хотел бы начать удаленный сеанс без ввода следующей команды
ssh user@remoteserverip -t zsh
Я знаю, что могу изменить имена хостов в, ~/.ssh/config
чтобы просто использовать что-то вроде этого:
ssh serveralias -t zsh
Но я хочу удалить -t zsh
параметр.
Есть ли способ достичь этого без написания функции?
Ответы:
Я не думаю, что это возможно с
~/.ssh/config
.-t
Может быть покрыто путем добавленияRequestTTY yes
, но это не кажется , вы можете задать удаленную команду в~/.ssh/config
.Однако с помощью
zsh
вы можете добавить:к вашему
~/.zshrc
.Или сделайте функцию вроде:
источник
alias
действительно правильно? Проверьте ваши цитаты.Я согласен с @Stephane, что нет способа сделать это с помощью
~/.ssh/config file
. Другой подход заключается в использовании~/.ssh/authorized_keys
файла на удаленном сервере. Если вы добавите такую строку:Тогда вы можете просто ssh как обычно, и вы получите zsh на удаленном сервере.
пример
На сервере SSH к удаленному.
На удаленном сервере, подтверждая, что мы в
zsh
.С помощью этого файла вы можете сделать что-то более сложное, посмотреть вопросы и ответы под названием: ssh, запустить определенную оболочку и запустить команду на удаленном компьютере? ,
источник
command="exec zsh"
плохая идея: невозможно запустить ssh с явной командой (так что до свидания scp, rsync,…). unix.stackexchange.com/a/20739 показывает, как это сделать прилично.Для тех, кто прибывает сюда спустя годы, с 2017 года в конфигурационный файл можно поместить все:
источник
источник
Вам лучше изменить настройки системной оболочки.
ssh serveralias
chsh
чтобы изменить системную оболочку/bin/zsh
чтобы установить его в Zshssh serveralias
и он покажет%
chsh [username]
может использоваться для изменения настроек другого пользователя без переподключения.источник