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.cz
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
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.cz
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
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