Puedes copiar temporalmente tu .bashrc
a su máquina remota con otro nombre. Por ejemplo, usando .bashrc_temp
:
[email protected]$ scp .bashrc [email protected]:~/.bashrc_temp
Luego puede iniciar sesión en la máquina remota:
[email protected]$ ssh [email protected]
y source
el archivo .bashrc_temp
:
[email protected]$ source ~/.bashrc_temp
Ahora puedes usar tu .bashrc
y tus funciones. Cuando haya terminado con su trabajo, puede eliminar el archivo ~/.bashrc_temp en la máquina remota y cerrar la sesión.
La copia del archivo y el inicio de sesión en la máquina remota se pueden lograr con una función 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
}
Actualizar :
También puede considerar copiar el .bashrc
a /tmp
en su máquina remota y fuente /tmp/.bashrc_temp
.
Actualización 2 :
Puede iniciar sesión en la máquina remota usando ssh -t. Esto usará automáticamente su temperatura .bashrc
. Función actualizada s()
:
function s() {
scp ~/.bashrc $1:/tmp/.bashrc_temp
ssh -t $1 "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
jens-na proporcionó una excelente respuesta. Pasé un poco de tiempo y lo volví a trabajar un poco para que funcionara un poco mejor. De esta forma, puede pasar cualquier parámetro a SSH, como números de puerto. La diferencia es que usa el ssh
comando para subir el .bashrc
archivo, en lugar de scp
, que usa diferentes nombres de parámetros de comando.
También notará que carga un archivo diferente, .bashrc_remote
, para que pueda seleccionar exactamente lo que desea obtener en servidores remotos, en lugar de todo
sshs() {
ssh [email protected] "cat > /tmp/.bashrc_temp" < ~/.bashrc_remote
ssh -t [email protected] "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
Ejecútelo de la siguiente manera:
sshs [email protected]
El nombre 'sshs
' es para "Fuente SSH". Utilice ssh
cuando no quiera buscar y use sshs
cuando lo hagas.
https://gist.github.com/jonahbron/5549848
Creo que sshrc es lo que estás buscando:https://github.com/Russell91/sshrc
sshrc funciona igual que ssh, pero también genera ~/.sshrc después de iniciar sesión de forma remota.
$ echo "echo welcome" > ~/.sshrc
$ sshrc [email protected]
welcome
$ echo "alias ..='cd ..'" > ~/.sshrc
$ sshrc [email protected]
$ type ..
.. is aliased to `cd ..'
Puede usar esto para establecer variables de entorno, definir funciones y ejecutar comandos posteriores al inicio de sesión. Es así de simple y no afectará a otros usuarios en el servidor, incluso si también usan sshrc. Para una configuración más avanzada, continúa leyendo.