Vous pouvez copier temporairement votre .bashrc à votre machine distante avec un autre nom. Par exemple, en utilisant .bashrc_temp :
example@unixlinux.online$ scp .bashrc example@unixlinux.online:~/.bashrc_temp
Ensuite, vous pouvez vous connecter à la machine distante :
example@unixlinux.online$ ssh example@unixlinux.online
et source le fichier .bashrc_temp :
example@unixlinux.online$ source ~/.bashrc_temp
Vous pouvez maintenant utiliser votre .bashrc et vos fonctions. Lorsque vous avez terminé votre travail, vous pouvez supprimer le fichier ~/.bashrc_temp sur la machine distante et vous déconnecter.
La copie du fichier et la connexion à la machine distante peuvent être réalisées avec une fonction bash :
# copy the .bashrc to the remote machine
# and log into the remote machine.
# parameter $1: example@unixlinux.online
function s() {
scp ~/.bashrc $1:~/.bashrc_temp
ssh $1
}
Mettre à jour :
Vous pouvez également envisager de copier le .bashrc à /tmp sur votre machine distante et source /tmp/.bashrc_temp .
Mise à jour 2 :
Vous pouvez vous connecter à la machine distante en utilisant ssh -t. Cela utilisera automatiquement votre temp .bashrc . Fonction mise à jour s() :
function s() {
scp ~/.bashrc $1:/tmp/.bashrc_temp
ssh -t $1 "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
jens-na a fourni une excellente réponse. J'ai passé un peu de temps et retravaillé un peu pour travailler un tout petit peu mieux. De cette façon, vous pouvez transmettre n'importe quel paramètre à SSH, comme les numéros de port. La différence est qu'il utilise le ssh commande pour télécharger le .bashrc fichier, au lieu de scp , qui utilise des noms de paramètres de commande différents.
Vous remarquerez également qu'il télécharge un fichier différent, .bashrc_remote , afin que vous puissiez sélectionner exactement ce que vous souhaitez sourcer sur des serveurs distants, au lieu de tout
sshs() {
ssh example@unixlinux.online "cat > /tmp/.bashrc_temp" < ~/.bashrc_remote
ssh -t example@unixlinux.online "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
Exécutez-le comme suit :
sshs example@unixlinux.online
Le nom 'sshs ' est pour "Source SSH". Utilisez ssh lorsque vous ne voulez pas sourcer, et utilisez sshs quand vous le faites.
https://gist.github.com/jonahbron/5549848
Je pense que sshrc est ce que vous recherchez :https://github.com/Russell91/sshrc
sshrc fonctionne exactement comme ssh, mais il source également ~/.sshrc après une connexion à distance.
$ echo "echo welcome" > ~/.sshrc
$ sshrc example@unixlinux.online
welcome
$ echo "alias ..='cd ..'" > ~/.sshrc
$ sshrc example@unixlinux.online
$ type ..
.. is aliased to `cd ..'
Vous pouvez l'utiliser pour définir des variables d'environnement, définir des fonctions et exécuter des commandes post-connexion. C'est aussi simple que cela et cela n'aura aucun impact sur les autres utilisateurs du serveur - même s'ils utilisent également sshrc. Pour une configuration plus avancée, continuez à lire.