ssh klíč na webdev
Potřeboval bych si přidat ssh klíč na webdev. 1) je to vůbec možné, když na webdevu není home jako takový, (tzn. ssh tam podle mě nekouká.) ?
Našel jsem nějaký návod na fit wiki FW Ale ten se zabývá pouze gitem.
Potřeboval bych si přidat ssh klíč na webdev. 1) je to vůbec možné, když na webdevu není home jako takový, (tzn. ssh tam podle mě nekouká.) ?
Našel jsem nějaký návod na fit wiki FW Ale ten se zabývá pouze gitem.
Ten návod na FW jsem psal já. Není možné se na webdev přihlašovat klíčem, protože tam není home. Hlásil jsem to jako chybu, ale prý je chybějící home záměrem. Pro hlášení se z webdevu někam jinam viz odpověď od @Tibor Szolár.
V souvislosti s tím návodem mě mě napadá ještě vytvořit si „anténu“ ve formě php souboru, který při načtení udělá git pull z masteru a případné další věci (v případě BI-WT2 nějaké to asset generování a dropnutí cache). A pak si nastavit třeba na Githubu webhook při pushi. Tím úplně odpadá nutnost se na webdev přihlašovat a stačí pushovat do masteru.
Miro Hrončok ( 2014-09-24 11:08:57 +0100 )editDiky, tomu home adresari je taky vysranej vim viz: http://goo.gl/oIcvWx .
syky27 ( 2014-09-24 14:24:33 +0100 )editJednou 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 webdevJak sakra můžu z lokálu ovlivnit, jaký veřejný klíč na serveru se použije? Co když bude mít uživatel na serveru ve složce Downloads můj veřejný klíč, to se pak můžu na server přihlásit? Jak SSH pozná, na jakého uživatel mě takto smí přihlásit? Celé mi to přijde bezpečnostně zvláštní.
Miro Hrončok ( 2014-09-24 10:56:25 +0100 )editTohle samozřejmě řeší pouze přihlašování přes SSH klíč **z webdevu** někam jinam, přihlašování **na webdev** přes SSH klíč pokud vím nějak rozumně udělat nejde.
Tibor Szolár ( 2014-09-24 11:06:08 +0100 )edit@Miro Hrončok já odpovídal na tu odpověď, která tu byla předtím .. řešil jsem jak se přihlásit **od někud** => **na webdev** přes klíč tzn Jak nahrát pub key na webdev a přesvědčit ssh aby ho to sežralo
shejby ( 2014-09-24 16:14:58 +0100 )editPro přihlašování na webdev přes ssh klíč by musela být nějaká podpora na serveru. To, že tam není pro studenty home, by nemuselo vadit, kdyby se nepoužívala defaultní lokace pro authorized_keys která vyhledává v homu. Teoreticky se dá nastavit pro ten soubor i jiná lokace a klíče by se pak mohly ukladat někam jako /ssh/%u/authorized_keys - prostě jinam, kam by měl uživatel webdevu přístup. Samozřejmě nevim jak presne webdev funguje takze vsechno muze byt mnohem slozitejsi, ale i tak by se s tím podle mě něco udělat mohlo. Přihlašování přes ssh rozhodně neni na škodu.
Honza Řasa ( 2014-09-25 23:04:27 +0100 )editAsked: 2014-09-23 16:10:10 +0100
Seen: 930 times
Last updated: Sep 24 '14
Chápu správně, že se chceš na webdev přihlásit SSH klíčem? A ne z webdevu používat klíč na přihlášení jinam.
Miro Hrončok ( 2014-09-24 10:58:58 +0100 )editJá to právě chápal obráceně na základě linkovaného tutoriálu, který řeší přihlašování Gitu klíčem z webdevu jinam.
Tibor Szolár ( 2014-09-24 11:09:11 +0100 )edit@Miro Hrončok chápeš to správně --- jsem to nakonec vyřešil přes sshpass, ale třikrát šťastnej z toho teda nejsem :-/
shejby ( 2014-09-24 16:10:35 +0100 )edit