Me gustaría comenzar una sesión remota sin escribir el siguiente comando
ssh user@remoteserverip -t zsh
Sé que puedo cambiar los nombres de host en ~/.ssh/configsimplemente usar algo como esto:
ssh serveralias -t zsh
Pero quiero eliminar el -t zshparámetro.
¿Hay alguna manera de lograr esto sin escribir una función?

Respuestas:
No creo que eso sea posible con
~/.ssh/config. Se-tpuede cubrir agregando unRequestTTY yes, pero no parece que pueda especificar el comando remoto~/.ssh/config.Sin embargo, con
zsh, podría agregar un:a tu
~/.zshrc.O hacer una función como:
fuente
aliasrealmente correcto? Revisa tus cotizaciones.Estoy de acuerdo con @Stephane en que no hay una manera de hacer esto usando el
~/.ssh/config file. Otro enfoque sería utilizar el~/.ssh/authorized_keysarchivo en el servidor remoto. Si agrega una línea como esta:Entonces puedes simplemente ssh como normal y obtendrás un zsh en el servidor remoto.
Ejemplo
En el servidor, ssh a remoto.
En el servidor remoto, confirmando que estamos en un
zsh.Puede hacer cosas más elaboradas usando este archivo, vea estas preguntas y respuestas, tituladas: ssh, inicie un shell específico y ejecute un comando en la máquina remota. .
fuente
command="exec zsh"es una mala idea: hace que sea imposible ejecutar ssh con un comando explícito (así que adiós scp, rsync, ...). unix.stackexchange.com/a/20739 muestra cómo hacerlo decentemente.Para cualquiera que llegue aquí años después, desde 2017 es posible poner todo en el archivo de configuración:
fuente
fuente
Es mejor cambiar la configuración del shell del sistema.
ssh serveraliaschshpara cambiar el shell del sistema/bin/zshpara configurarlo en zshssh serveraliasy se mostrará%chsh [username]se puede usar para cambiar la configuración de otro usuario sin reconexión.fuente