Loading [MathJax]/extensions/tex2jax.js
Ask Your Question
1

ssh klíč na webdev

asked Sep 23 '14

shejby gravatar image

updated Sep 23 '14

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.

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 (Sep 24 '14)

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 (Sep 24 '14)

@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 (Sep 24 '14)
add a comment

2 Answers

Sort by » oldest newest most voted
1

answered Sep 23 '14

Miro Hrončok gravatar image

updated Sep 24 '14

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.

link

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 (Sep 24 '14)

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

syky27 (Sep 24 '14)

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

shejby (Sep 24 '14)
add a comment
2

answered Sep 23 '14

Tibor Szolár gravatar image

updated Sep 24 '14

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 user@webdev.fit.cvut.cz.

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íč
link

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 (Sep 23 '14)

@shejby to asi nechápu?

Miro Hrončok (Sep 24 '14)

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 (Sep 24 '14)
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 (Sep 24 '14)

@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 (Sep 24 '14)
see more comments

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: Sep 23 '14

Seen: 930 times

Last updated: Sep 24 '14