Josef Růžička image

SSH, nebo také Secure Shell, je technologie, skrze kterou je možné se zabezpečeným způsobem připojit na vzdálené počítače, zpravidla servery. Technologie využívá příkazovou řádku.

V praxi se jedná o skutečné uživatelské přihlášení, tzv. login, do vzdáleného serveru. Proto se všechny příkazy, které po loginu na příkazové řádce zadáváte, realizují na straně vzdáleného serveru.

SSH je dnes de facto standardem. V případě vývoje webů tuto technologii využijeme především pro zabezpečený přístup do vzdálených Git repozitářů. To znamená, že budeme schopni do vzdáleného repozitáře např. na Githubu poslat svůj kód.

Ti z vás, kteří se místo klasického webhostingu rozhodnou pořídit si vlastní server, např. VPS, pak tuto technologii využijí k loginu do vzdáleného serveru, kde následně budou schopni provést instalaci a konfiguraci všeho potřebného včetně samotného webu, a to jednoduše skrze příkazovou řádku.

Základem této technologie je SSH klíč, který se skládá ze dvou částí - privátní a veřejné. Tzv. privátní klíč (private key) je uložen v jednom souboru a veřejný klíč (public key) v druhém souboru. Klíč samotný je vygenerován pomocí jednoho z kryptovacích algoritmů, nejčastěji RSA.

Idea je v zásadě jednoduchá. Do vzdálených lokací, např. na server, se umístí veřejný klíč, který, jak jeho název napovídá, není nijak tajný. V praxi můžete tuto část klíče nahrát na neomezené množství vzdálených serverů a fakt, že majitelé či provozovatelé těchto serverů mají k souboru přístup, pro vás nepředstavuje žádné bezpečnostní riziko.

Privátní klíč je naopak soubor, který je tajný a který se nachází výhradně ve vašem počítači, a to ve speciální složce, viz. dále. Během loginu se na pozadí spojí obě části klíčů, a pokud je výsledek v pořádku, má uživatel přístup do vzdáleného serveru.

Vygenerování SSH klíče

K vygenerování klíče otevřete terminál, např. pomocí klávesové zkratky ctrl + shift + t a zadejte následující příkaz: ssh-keygen -t rsa -b 4096 -C “[vaše emailová adresa].

Příkaz spustí průvodce, který se vás v dalším kroku zeptá na to, jak chcete, aby se soubor jmenoval. Pokud vám vyhovuje defaultní název souboru id_rsa, můžete jednoduše stisknout tlačítko enter.

Výchozí lokace klíče je v linuxových systémech složka .ssh v adresáři home, tedy lokace ~/.ssh , což je totéž jako /home/[username]/.ssh/.

V dalším kroku jste vyzváni ke zvolení přístupového hesla a hned v následném kroku k jeho potvrzení. Zvolte si heslo, které nezapomenete- nic jako obnova zapomenutého hesla totiž v této technologii nefunguje.

Nyní máme klíč vygenerovaný a umístěný ve správné lokaci. Pokud jste použili defaultní název souboru, nachází se ve složce .ssh soubor id_rsa, což je váš private key, a soubor id_rsa.pub, což je váš public key.

K vygenerování klíče otevřete terminál (iTerm) a zadejte následující příkaz: ssh-keygen -t rsa -b 4096 -C “[vaše emailová adresa]”.

Příkaz spustí průvodce, který se vás v dalším kroku zeptá na to, jak chcete, aby se soubor jmenoval. Pokud vám vyhovuje defaultní název souboru “id_rsa”, můžete jednoduše stisknout tlačítko enter.

Výchozí lokace klíče je v linuxových systémech složka .ssh v adresáři home, tedy lokace ~/.ssh , což je totéž jako /Users/[username]/.ssh/.

V dalším kroku jste vyzváni ke zvolení přístupového hesla a hned v následném kroku k jeho potvrzení. Zvolte si heslo, které nezapomenete- nic jako obnova zapomenutého hesla totiž v této technologii nefunguje.

Nyní máme klíč vygenerovaný a umístěný ve správné lokaci. Pokud jste použili defaultní název souboru, nachází se ve složce .ssh soubor id_rsa, což je váš private key, a soubor id_rsa.pub, což je váš public key.

Víte, jak vygenerovat ssh klíč na počítačích s operačním systémem Windows? Přispějte do komunity a pomozte dlouhodobě tak těm, kteří neví jak na to.

Pokud potřebujete přístupy do adminstrace webu, obraťte se na někoho z Drupal týmu.

Přidání klíče do programu ssh-agent

Program ssh-agent je nástroj pro správu ssh klíčů. Tento program je operačním systémem zpravidla automaticky spuštěn při přihlášení. Program následně na pozadí zajišťuje proces autentikace ssh klíče.

Tím, že jste v systému právě vytvořili nový klíč, ho ovšem váš ssh-agent ještě nemá načtený, neboť načítání klíčů probíhá při spuštění programu. Nyní máte dvě možnosti:

  • Odhlásit se ze systému, a následně přihlásit.
  • Zadat následující příkazy, čímž dojde k načtení nových klíčů:
    • eval "$(ssh-agent -s)"
    • ssh-add ~/.ssh/id_rsa

A to je vše. Pro účely autentikace do vzdálených repozitářů by nyní mělo být vše funkční. V další části tohoto tutoriálu se budeme zabývat samotným přihlášením do vzdáleného serveru a také možnostmi použití vícero ssh klíčů.

Víte, jak přidat ssh klíč do programu ssh-agent či do jiného ekvivalentního programu na počítačích Apple? Přispějte do komunity a pomozte dlouhodobě tak těm, kteří neví jak na to.

Pokud potřebujete přístupy do adminstrace webu, obraťte se na někoho z Drupal týmu.

Víte, jak přidat ssh klíč do programu ssh-agent či do jiného ekvivalentního programu na počítačích s operačním systémem Windows? Přispějte do komunity a pomozte dlouhodobě tak těm, kteří neví jak na to.

Pokud potřebujete přístupy do adminstrace webu, obraťte se na někoho z Drupal týmu.