GNU/Linux >> Tutoriels Linux >  >> Linux

Pousser mon invite PS1 sur ssh

Téléchargez un fichier sur chaque machine distante, dites ~/.my_custom_bashrc , avec votre bash personnalisé configuration, (dans ce cas PS1=... ) puis lancez ssh avec :

ssh [email protected] -t "bash --rcfile ~/.my_custom_bashrc -i"

Vous pouvez facilement utiliser un bash fonctionner comme wrapper pour la lisibilité.


Si vous souhaitez simplement envoyer le PS1 variable, et elle ne contient pas de ' (apostrophe), essayez :

ssh targethost -t "PS1='$PS1'; exec bash"

Le .bashrc local peut bien écraser PS1 cependant (merci à Dennis Williamson pour l'avoir signalé).

Il existe des moyens de transmettre des variables d'environnement via ssh, mais elles sont généralement désactivées dans la configuration du serveur. Si le PermitUserEnvironment est activée dans la configuration du serveur et chaque utilisateur a sa propre paire de clés (oui, vous n'aurez peut-être pas cette chance), vous pouvez ajouter environment="PS1=…" à la ligne en ~/.ssh/authorized_keys correspondant à votre clé.

Si vous souhaitez conserver votre propre configuration sur un compte utilisateur partagé, vous pouvez créer votre propre répertoire de fichiers de configuration et définir le HOME variable d'environnement pour pointer vers ce répertoire.

ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/

Créer des liens symboliques dans le mrstatic.home répertoire pointant vers l'entrée correspondante dans le répertoire parent lorsque vous souhaitez partager un fichier avec les autres utilisateurs.

Ensuite, connectez-vous avec

ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`

Si vous souhaitez modifier la télécommande .profile (ou autre fichier d'initialisation), vous pouvez probablement automatiser vos réglages. De nombreux sites autorisent LC_* variables d'environnement à travers (normalement elles sont utilisées pour les paramètres régionaux). Si ces deux conditions sont remplies, vous pouvez définir une variable qui n'est pas réellement utilisée pour les paramètres régionaux, par exemple LC_USER , côté client, et testez-le sur le serveur .profile .

(Bien sûr, les comptes partagés sont une mauvaise idée, mais je sais que vous n'êtes peut-être pas en mesure de changer cette situation.)


ssh -t [email protected] "remote='$PS1' bash -i"

Puis, à l'invite :

PS1=$remote

Linux
  1. Hivériser votre invite Bash sous Linux

  2. Bash écrase la première ligne, invite Ps1 Bash ?

  3. Ssh - Rediriger Stdout sur Ssh ?

  4. Mettez en surbrillance les séparateurs de chemin dans Ps1 ?

  5. Exécuter un fichier de script sur Ssh via Sudo ?

Comment personnaliser l'invite Bash sous Linux

Comment transférer des fichiers avec Rsync sur SSH

Bash Shell PS1 :10 exemples pour rendre votre invite Linux comme Angelina Jolie

Utiliser un appareil via SSH ?

proxy http sur ssh, pas chaussettes

clés ssh ssh-agent bash et ssh-add