Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

posted 2014-09-23 17:38:04 +0100

Na adresářovou strukturu serveru webdev se lze dostat ze serverů fray{1,3}.fit.cvut.cz, kde home existuje. Pokud tedy není nezbytně nutné spouštět něco se SSH přímo ze serveru webdevu, lze do uživatelského adresáře webdevu z Fray přistoupit pomocí

cd /home/www/webdev/$USER

SSH klíče se budou načítat z ~/.ssh na Frayi.

Na adresářovou strukturu serveru webdev se lze dostat ze serverů fray{1,3}.fit.cvut.cz, kde home existuje. Pokud tedy není nezbytně nutné spouštět něco se SSH přímo ze serveru webdevu, lze do uživatelského adresáře webdevu z Fray přistoupit pomocí

cd /home/www/webdev/$USER

SSH klíče se budou načítat z ~/.ssh na Frayi.

Edit: výše popsaný působ nefunguje pro server webdev.fit.cvut.cz, ale pouze pro users.fit.cvut.cz, který je dostupný pouze pro zaměstnance. V případě využití serveru users.fit.cvut.cz je třeba nahradit webdev v cestě za users.

Na adresářovou strukturu serveru webdev se lze dostat ze serverů fray{1,3}.fit.cvut.cz, kde home existuje. Pokud tedy není nezbytně nutné spouštět něco se SSH přímo ze serveru webdevu, lze do uživatelského adresáře webdevu z Fray přistoupit pomocí

cd /home/www/webdev/$USER

SSH klíče se budou načítat z ~/.ssh na Frayi.

Edit: výše popsaný působ nefunguje pro server webdev.fit.cvut.cz, ale pouze pro users.fit.cvut.cz, který je dostupný pouze pro zaměstnance. V případě využití serveru users.fit.cvut.cz users.fit.cvut.cz je třeba nahradit webdev v cestě za users.

Edit: níže popsaný působ nefunguje pro server webdev.fit.cvut.cz, ale pouze pro users.fit.cvut.cz, který je dostupný pouze pro zaměstnance. V případě využití serveru users.fit.cvut.cz je třeba nahradit webdev v cestě za users.

Na adresářovou strukturu serveru webdev se lze dostat ze serverů fray{1,3}.fit.cvut.cz, kde home existuje. Pokud tedy není nezbytně nutné spouštět něco se SSH přímo ze serveru webdevu, lze do uživatelského adresáře webdevu z Fray přistoupit pomocí

cd /home/www/webdev/$USER

SSH klíče se budou načítat z ~/.ssh na Frayi.

Edit: výše popsaný působ nefunguje pro server webdev.fit.cvut.cz, ale pouze pro users.fit.cvut.cz, který je dostupný pouze pro zaměstnance. V případě využití serveru users.fit.cvut.cz je třeba nahradit webdev v cestě za users.

Edit: níže popsaný působ

Alias

Jednou z možností, jak na webdevu donutit ssh pracovat s ssh klíčem je pomocí jednoduchého aliasu:

alias ssh="ssh -i /var/www/webdev/$USER/.ssh/id_rsa -o UserKnownHostsFile=/var/www/webdev/$USER/.ssh/known_hosts "

(Mezera na konci se hodí, pokud bychom prováděli alias chaining.)

Tento alias předpokládá privátní klíč v /var/www/webdev/$USER/.ssh/id_rsa a known_hosts soubor ve /var/www/webdev/$USER/.ssh/known_hosts

Abychom dosáhli této konfigurace, stačí na webdevu jednorázově provést:

cd /var/www/webdev/$USER
mkdir -p .ssh
chmod 700 .ssh
touch .ssh/known_hosts
ssh-keygen -f .ssh/id_rsa

Problém je, že alias musíme nastavovat po každém přihlášení znovu, jelikož nelze zapisovat do .bashrc.


SSHRC

Toto lze řešit např. pomocí utility sshrc, která umožňuje bootstrapovat lokální konfigurační soubory po přihlášení přes SSH. nefunguje(Instaluje se na lokálně na systém, ze kterého se připojujeme.)

V lokálním domovském adresáři stačí vytvořit soubor .sshrc s konfigurací a místo přes ssh se k webdevu připojit přes sshrc - sshrc [email protected].

Soubor .sshrc bude pro server webdev.fit.cvut.cznastavení výše uvedeného aliasu po přihlášení vypadat takto:

if [ $HOSTNAME == "webdev-fit-01" ]; then
  alias ssh="ssh -i /var/www/webdev/$USER/.ssh/id_rsa -o UserKnownHostsFile=/var/www/webdev/$USER/.ssh/known_hosts "
fi

Změna dočasného adresáře pro SSHRC

Jedna malá chybka na kráse je to, že na webdevu je úplně zaplněn root oddíl, tudíž nelze vytvářet soubory v /tmp, ale pouze o což se znaží sshrc.

Řešením je donutit sshrc používat náš (ne)domovský adresář, kde diskové místo je. Stačí lokálně nainstalovat upravenou verzi, do které jsem přidat podporu pro users.fit.cvut.czkonfiguraci cesty k dočasnému adresáři, kam sshrc rozbaluje konfigurační soubory.

wget https://raw.githubusercontent.com/flexik/sshrc/master/sshrc
chmod +x sshrc
sudo mv sshrc /usr/local/bin #or anywhere else on your PATH

Nastavení cesty lze změnit přes proměnnou prostředí $SSHRC_REMOTETMPDIR, který je dostupný pouze pro zaměstnance. V případě využití serveru users.fit.cvut.cz je třeba nahradit webdev v cestě za usersdefaultně je nastaveno /var/www/webdev/$USER.

Na adresářovou strukturu serveru webdev se lze dostat ze serverů fray{1,3}.fit.cvut.cz, kde home existuje. Pokud tedy není nezbytně nutné spouštět něco se SSH přímo ze serveru webdevu, lze do uživatelského adresáře webdevu z Fray přistoupit pomocí

cd /home/www/webdev/$USER

SSH klíče se budou načítat z ~/.ssh na Frayi.

Alias

Jednou z možností, jak na webdevu donutit ssh pracovat s ssh klíčem je pomocí jednoduchého aliasu:

alias ssh="ssh -i /var/www/webdev/$USER/.ssh/id_rsa -o UserKnownHostsFile=/var/www/webdev/$USER/.ssh/known_hosts "

(Mezera na konci se hodí, pokud bychom prováděli alias chaining.)

Tento alias předpokládá privátní klíč v /var/www/webdev/$USER/.ssh/id_rsa a known_hosts soubor ve /var/www/webdev/$USER/.ssh/known_hosts

Abychom dosáhli této konfigurace, stačí na webdevu jednorázově provést:

cd /var/www/webdev/$USER
mkdir -p .ssh
chmod 700 .ssh
touch .ssh/known_hosts
ssh-keygen -f .ssh/id_rsa

Problém je, že alias musíme nastavovat po každém přihlášení znovu, jelikož nelze zapisovat do .bashrc.


SSHRC

Toto lze řešit např. pomocí utility sshrc, která umožňuje bootstrapovat lokální konfigurační soubory po přihlášení přes SSH. (Instaluje se na lokálně na systém, ze kterého se připojujeme.)

V lokálním domovském adresáři stačí vytvořit soubor .sshrc s konfigurací a místo přes ssh se k webdevu připojit přes sshrc - sshrc [email protected].

Soubor .sshrc bude pro nastavení výše uvedeného aliasu po přihlášení vypadat takto:

if [ $HOSTNAME == "webdev-fit-01" ]; then
  alias ssh="ssh -i /var/www/webdev/$USER/.ssh/id_rsa -o UserKnownHostsFile=/var/www/webdev/$USER/.ssh/known_hosts "
fi

Změna dočasného adresáře pro SSHRC

Jedna malá chybka na kráse je to, že na webdevu je úplně zaplněn root oddíl, tudíž nelze vytvářet soubory v /tmp, o což se znaží sshrc.

Řešením je donutit sshrc používat náš (ne)domovský adresář, kde diskové místo je. Stačí lokálně nainstalovat upravenou verzi, do které jsem přidat podporu pro konfiguraci cesty k dočasnému adresáři, kam sshrc rozbaluje konfigurační soubory.

wget https://raw.githubusercontent.com/flexik/sshrc/master/sshrc
chmod +x sshrc
sudo mv sshrc /usr/local/bin #or anywhere else on your PATH

Nastavení cesty lze změnit přes proměnnou prostředí $SSHRC_REMOTETMPDIR, defaultně je nastaveno /var/www/webdev/$USER.


Rekapitulace

  1. Lokálně nainstalovat upravený sshrc skript
  2. Vytvořit konfiguraci .sshrc v lokálním domovském adresáři
  3. Přihlásit se přes sshrc na webdev
  4. Na webdevu vytvořit adresář a soubory pro ssh a vygenerovat ssh klíč