Ask Your Question
1

ssh klíč na webdev

asked 2014-09-23 16:10:10 +0100

shejby gravatar image

updated 2014-09-23 16:13:17 +0100

Miro Hrončok gravatar image

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.

edit retag flag offensive close delete

Comments

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 )edit

Já 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

2 Answers

Sort by » oldest newest most voted
1

answered 2014-09-23 16:12:08 +0100

Miro Hrončok gravatar image

updated 2014-09-24 11:13:33 +0100

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.

edit flag offensive delete publish link more

Comments

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 )edit

Diky, tomu home adresari je taky vysranej vim viz: http://goo.gl/oIcvWx .

syky27 ( 2014-09-24 14:24:33 +0100 )edit

ten vim je taky nepříjemnej :-/ ...ale editovat lze

shejby ( 2014-09-24 16:16:54 +0100 )edit
2

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

Tibor Szolár gravatar image

updated 2014-09-24 03:33:37 +0100

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íč
edit flag offensive delete publish link more

Comments

ano dostanu se tam, lze zde vytvářet soubory a složky, ale s webdev.fit.cvut.cz/~username/ to bohužel nemá nic společného.

shejby ( 2014-09-24 00:27:29 +0100 )edit

@shejby to asi nechápu?

Miro Hrončok ( 2014-09-24 10:42:30 +0100 )edit

Jak 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 )edit
1

Tohle 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 )edit

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Question tools

Follow
1 follower

Stats

Asked: 2014-09-23 16:10:10 +0100

Seen: 930 times

Last updated: Sep 24 '14