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.
| 2 | No.2 Revision |
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.
| 3 | No.3 Revision |
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.
| 4 | No.4 Revision |
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.
| 5 | No.5 Revision |
Edit: níže popsaný působ
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.
Toto lze řešit např. pomocí utility sshrc, která umožňuje bootstrapovat lokální konfigurační soubory po přihlášení přes SSH.
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
webdev.fit.cvut.czif [ $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
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
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
users.fit.cvut.czsshrc 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
users.fit.cvut.cz je třeba nahradit webdev v cestě za users/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.
| 6 | No.6 Revision |
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.
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
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.
sshrc skript.sshrc v lokálním domovském adresářisshrc na webdev
Copyright students of FIT CTU and others, 2014. Content on this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International license.