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.