GNU/Linux >> Znalost Linux >  >> Linux

dynamické načítání lokálních aliasů shellu do relace ssh

Svůj .bashrc můžete dočasně zkopírovat na váš vzdálený počítač s jiným jménem. Například pomocí .bashrc_temp :

[email protected]$ scp .bashrc [email protected]:~/.bashrc_temp

Poté se můžete přihlásit ke vzdálenému počítači:

[email protected]$ ssh [email protected]

a source soubor .bashrc_temp :

[email protected]$ source ~/.bashrc_temp

Nyní můžete používat .bashrc a vaše funkce. Po dokončení práce můžete odstranit soubor ~/.bashrc_temp na vzdáleném počítači a odhlásit se.

Zkopírování souboru a přihlášení ke vzdálenému počítači lze provést pomocí funkce 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
}

Aktualizovat :

Můžete také zvážit zkopírování .bashrc/tmp na vašem vzdáleném počítači a zdrojovém /tmp/.bashrc_temp .

Aktualizace 2 :

Ke vzdálenému počítači se můžete přihlásit pomocí ssh -t. Tím se automaticky použije vaše teplota .bashrc . Aktualizovaná funkce s() :

function s() {
  scp ~/.bashrc $1:/tmp/.bashrc_temp
  ssh -t $1 "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}

jens-na poskytla vynikající odpověď. Strávil jsem trochu času a trochu jsem to přepracoval, aby to fungovalo o malinko lépe. Tímto způsobem můžete předat SSH jakýkoli parametr, například čísla portů. Rozdíl je v tom, že používá ssh příkaz k nahrání .bashrc namísto scp , který používá různé názvy parametrů příkazu.

Také si všimnete, že nahraje jiný soubor, .bashrc_remote , takže si místo všeho

můžete vybrat přesně to, co chcete na vzdálených serverech získávat
sshs() {
        ssh [email protected] "cat > /tmp/.bashrc_temp" < ~/.bashrc_remote
        ssh -t [email protected] "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}

Spusťte jej následovně:

sshs [email protected]

Název 'sshs ' je pro "SSH Source". Použijte ssh když nechcete používat zdroj a použijte sshs když to uděláte.

https://gist.github.com/jonahbron/5549848


Myslím, že sshrc je to, co hledáte:https://github.com/Russell91/sshrc

sshrc funguje stejně jako ssh, ale po vzdáleném přihlášení také zdroj ~/.sshrc.

$ echo "echo welcome" > ~/.sshrc
$ sshrc [email protected]
welcome

$ echo "alias ..='cd ..'" > ~/.sshrc
$ sshrc [email protected]
$ type ..
.. is aliased to `cd ..'

Můžete to použít k nastavení proměnných prostředí, definování funkcí a spouštění příkazů po přihlášení. Je to tak jednoduché a nebude to mít vliv na ostatní uživatele na serveru – i když také používají sshrc. Pro pokročilejší konfiguraci pokračujte ve čtení.


Linux
  1. Jak ukončit nereagující připojení SSH v linuxu?

  2. Zabraňte ssh v rozbití parametrů skriptu shellu

  3. ssh tunelování pouze přístup

  1. Neočekávané chování skriptu Shell?

  2. Ssh – protokolování pokusů o přístup Ssh?

  3. Obsluha Ctrl-c v relaci Ssh?

  1. Pokračovat v příkazech Shell po připojení k Ssh?

  2. Programově / dynamicky upravit předávání portů relace Ssh?

  3. Jak používat aliasy shellu v Linuxu