Je souhaite démarrer une session à distance sans taper la commande suivante
ssh user@remoteserverip -t zsh
Je sais que je peux changer les noms d'hôtes dans le ~/.ssh/config
pour utiliser simplement quelque chose comme ceci:
ssh serveralias -t zsh
Mais je veux supprimer le -t zsh
paramètre.
Existe-t-il un moyen d'y parvenir sans écrire de fonction?
Réponses:
Je ne pense pas que ce soit possible avec
~/.ssh/config
. Le-t
peut être couvert en ajoutant unRequestTTY yes
, mais il ne semble pas que vous puissiez spécifier la commande à distance dans~/.ssh/config
.Cependant, avec
zsh
, vous pouvez ajouter un:à votre
~/.zshrc
.Ou créez une fonction comme:
la source
alias
vraiment correct? Vérifiez vos devis.Je suis d'accord avec @Stephane qu'il n'y a aucun moyen de le faire en utilisant le
~/.ssh/config file
. Une autre approche consisterait à utiliser le~/.ssh/authorized_keys
fichier sur le serveur distant. Si vous ajoutez une ligne comme celle-ci:Ensuite, vous pouvez simplement ssh comme d'habitude et vous obtiendrez un zsh sur le serveur distant.
Exemple
Sur le serveur, ssh à distance.
Sur un serveur distant, confirmant que nous sommes dans un
zsh
.Vous pouvez faire des choses plus élaborées en utilisant ce fichier, voir ce Q&R, intitulé: ssh, démarrer un shell spécifique et exécuter une commande sur la machine distante? .
la source
command="exec zsh"
est une mauvaise idée: cela rend impossible d'exécuter ssh avec une commande explicite (donc adieu scp, rsync,…). unix.stackexchange.com/a/20739 montre comment procéder décemment.Pour toute personne arrivant ici des années plus tard, depuis 2017, il est possible de tout mettre dans le fichier de configuration:
la source
la source
Vous feriez mieux de modifier le paramètre de shell du système.
ssh serveralias
chsh
pour changer le shell du système/bin/zsh
pour le régler sur zshssh serveralias
et cela montrera%
chsh [username]
peut être utilisé pour modifier les paramètres d'un autre utilisateur sans se reconnecter.la source