Gostaria de iniciar uma sessão remota sem digitar o seguinte comando
ssh user@remoteserverip -t zsh
Eu sei que posso alterar os nomes de host no ~/.ssh/config
para simplesmente usar algo como isto:
ssh serveralias -t zsh
Mas eu quero remover o -t zsh
parâmetro
Existe uma maneira de conseguir isso sem escrever uma função?
Respostas:
Eu não acho que isso é possível com
~/.ssh/config
. O-t
pode ser coberto pela adição de umRequestTTY yes
, mas não parece que você pode especificar o comando remoto~/.ssh/config
.No entanto, com
zsh
, você pode adicionar um:para o seu
~/.zshrc
.Ou crie uma função como:
fonte
alias
realmente correto? Verifique suas cotações.Concordo com @Stephane que não há uma maneira de fazer isso usando o
~/.ssh/config file
. Outra abordagem seria usar o~/.ssh/authorized_keys
arquivo no servidor remoto. Se você adicionar uma linha como esta:Então você pode simplesmente fazer o ssh normalmente e obter um zsh no servidor remoto.
Exemplo
No servidor, ssh para remoto.
No servidor remoto, confirmando que estamos em um servidor
zsh
.Você pode fazer coisas mais elaboradas usando esse arquivo, consulte estas perguntas e respostas, intituladas: ssh, inicie um shell específico e execute um comando na máquina remota? .
fonte
command="exec zsh"
é uma péssima idéia: torna impossível executar ssh com um comando explícito (então adeus scp, rsync,…). unix.stackexchange.com/a/20739 mostra como fazer isso decentemente.Para quem chega aqui anos depois, desde 2017 é possível colocar tudo no arquivo de configuração:
fonte
fonte
É melhor você alterar a configuração do shell do sistema.
ssh serveralias
chsh
para alterar o shell do sistema/bin/zsh
para configurá-lo como zshssh serveralias
e ele mostrará%
chsh [username]
pode ser usado para alterar a configuração de outro usuário sem se reconectar.fonte