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/config
simplemente usar algo como esto:
ssh serveralias -t zsh
Pero quiero eliminar el -t zsh
parámetro.
¿Hay alguna manera de lograr esto sin escribir una función?
Respuestas:
No creo que eso sea posible con
~/.ssh/config
. Se-t
puede 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
alias
realmente 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_keys
archivo 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 serveralias
chsh
para cambiar el shell del sistema/bin/zsh
para configurarlo en zshssh serveralias
y se mostrará%
chsh [username]
se puede usar para cambiar la configuración de otro usuario sin reconexión.fuente