Vous pouvez copier temporairement votre .bashrc
à votre machine distante avec un autre nom. Par exemple, en utilisant .bashrc_temp
:
[email protected]$ scp .bashrc [email protected]:~/.bashrc_temp
Ensuite, vous pouvez vous connecter à la machine distante :
[email protected]$ ssh [email protected]
et source
le fichier .bashrc_temp
:
[email protected]$ 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: [email protected]
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 [email protected] "cat > /tmp/.bashrc_temp" < ~/.bashrc_remote
ssh -t [email protected] "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
Exécutez-le comme suit :
sshs [email protected]
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 [email protected]
welcome
$ echo "alias ..='cd ..'" > ~/.sshrc
$ sshrc [email protected]
$ 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.