Uživatelské nástroje

Nástroje pro tento web


navody:server:ssh

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
navody:server:ssh [2026/07/12 20:27] – Označení navigačních cest a aktualizace názvů ve vpsAdminu aithernavody:server:ssh [2026/08/16 18:56] (aktuální) – Přirozenější znění návodů, lokalizace ukázek a doplnění týdenního vyzkoušení VPS aither
Řádek 1: Řádek 1:
-<note important> +<page>manuals:server:ssh</page>
-Tento článek je zastaralý, doporučujeme se řídit dokumentací nebo wiki distribuce, kterou používáš. +
-Pokud chceš, můžeš tento článek doplnit a aktualizovat. +
-</note>+
  
 ====== SSH ====== ====== SSH ======
  
-===== Co je to? =====+SSH poskytuje šifrovaný vzdálený terminál a bezpečný přenos souborů. Na VPS se 
 +obvykle připojíš jako uživatel ''root'':
  
-SSH je univerzální komunikační protokol umožňující **šifrované** a **oboustranně ověřené** připojení k serveru. Nejčastěji se používá pro zpřístupnění vzdáleného terminálu (příkazové řádky) nebo přenosu souborů. Pokud se chcete připojit ke svému serveru a provádět na něm jakékoliv administrátorské zásahy, budete potřebovat správně nakonfigurované SSH.+<code bash> 
 +ssh root@ADRESA_VPS 
 +</code>
  
-===== Konfigurace =====+Aktuální IP adresy najdeš v detailu VPS ve vpsAdminu:
  
-<code>/etc/ssh/sshd_config</code>+{{:cs:screenshots:vpsadmin:getting-started:ssh-connection.png?500|IP adresy a příkaz pro připojení přes SSH}}
  
-Měli bychom dodržovat zásadu, žco není povoleno, je zakázáno.+===== Ověření klíčserveru =====
  
-====== ihlášení jen pro některé uživatele ======+i prvním připojení zobrazí SSH otisk hostitelského klíče serveru. 
 +<vpsadmin-nav id="vps.details.open">Ve vpsAdminu otevři detail své VPS a 
 +porovnej otisk s tabulkou **Hostitelské klíče SSH**.</vpsadmin-nav> Klíč potvrď jen tehdy, 
 +když se otisky shodují. Ověření brání tomu, aby ses připojil k jinému serveru, 
 +který se za tvoji VPS pouze vydává.
  
-<code>AllowUsers petr karel</code>+{{:cs:screenshots:vpsadmin:ssh-keys:host-key-fingerprints.png?600|Otisky hostitelských klíčů SSH ve vpsAdminu}}
  
-v systému můžeme mít mnoho uživatelů a někteří mohou mít slabé heslo apod., tímto nastavením umožníme přihlásit se jen explicitně uvedeným uživatelům+Po přeinstalaci VPS nebo úmyslném vygenerování nových hostitelských klíčů se 
 +otisk změStarý záznam odstraň až po ověření důvodu změny a nového otisku:
  
-za jméno můžeme přidat i omezení na IP adresu:+<code bash> 
 +ssh-keygen -R ADRESA_VPS 
 +</code>
  
-<code>AllowUsers petr karel@8.8.8.8</code>+Nevysvětlené varování o změně hostitelského klíče neobcházej vypnutím jeho 
 +kontroly.
  
-====== Zakázaní roota s heslem ======+===== Přihlašování veřejným klíčem =====
  
-<code>PermitRootLogin without-password</code>+Veřejný klíč je pro běžné přihlašování vhodnější než heslo. Soukromá část 
 +zůstává na tvém počítači; nikdy ji neposílej na server ani jiné osobě. Pro nový 
 +klíč použij Ed25519 a nastav mu silnou přístupovou frázi:
  
-====== Zakáz přihlašování heslem ======+<code bash> 
 +ssh-keygen -t ed25519 -a 64 -C "muj-pocitac" 
 +</code>
  
-<code>PasswordAuthentication no</code>+Výchozí umístění klíče je ''~/.ssh/id_ed25519''. Přístupová fráze chrání 
 +soukromý klíč při ztrátě nebo napadení počítače. Abys ji nemusel zadávat při 
 +každém přihlášení, použij ''ssh-agent'' nebo systémovou klíčenku.
  
-====== Restrikce ipojení dle IP ======+Nová VPS dovoluje první ihlášení roota heslem, takže veřejný klíč 
 +nahraj přímo:
  
-<code>vim /etc/hosts.deny +<code bash
-SSHD: all</code>+ssh-copy-id root@ADRESA_VPS 
 +</code>
  
-<code>vim /etc/hosts.allow +<vpsadmin-nav id="member.public-keys.add">Klíč může spravovat také vpsAdmin
-SSHD: 8.8.8.8 8.8.4.4 ..... # dalsi ip adresy ze kterych umoznime spojeni na SSH</code>+Při jeho přidání můžeš zvolit automatické nahrávání do nových a 
 +přeinstalovaných VPSOtevři **Upravit profil → Veřejné klíče → Přidat veřejný 
 +klíč** a vlož obsah souboru 
 +''~/.ssh/id_ed25519.pub''.</vpsadmin-nav>
  
 +{{:cs:screenshots:vpsadmin:ssh-keys:add-public-key.png?300|Přidání veřejného klíče}}
  
-====== Přihlášení pomocí klíčů ======+V detailu běžící VPS je také formulář pro dodatečné nahrání některého z 
 +uložených veřejných klíčů:
  
-Nejprve je potřeba si vygenerovat soukromý a veřejný klíč pomocí PuTTYgen. Vygenerujeme si  SSH-2 RS 1024 bitové klíče. Nyní vyplníme údaje o klíči (komentář a passphrase) a uložíme si soukromný klíč do pc.+{{:cs:screenshots:vpsadmin:ssh-keys:deploy-public-key.png?300|Nahrání veřejného klíče do VPS}}
  
-V Linuxu použijeme řádkovou utilitu:+Každý klíč, který už nepoužíváš nebo jehož soukromá část mohla uniknout, odstraň 
 +ze serverů. <vpsadmin-nav id="member.public-keys.open">V **Upravit profil → 
 +Veřejné klíče** jej odstraň také z vpsAdminu.</vpsadmin-nav>
  
-<code>ssh-keygen -t rsa -b 2048 -C uzivatel@stanice</code>+===== Přístup uživatele root =====
  
-Na serveru si vytvoříme složku s právy 700:+Šablony vpsFree ve výchozím nastavení dovolují přihlášení uživatele ''root'' 
 +přes SSH. Je to praktické pro první přihlášení, ale heslo 
 +uživatele ''root'' je zároveň častým cílem automatických útoků.
  
-<code>mkdir ~/.ssh +Přímé přihlášení roota můžeš ponechat, ale povolit ho jen veřejným klíčemV 
-chmod 700 ~/.ssh</code>+konfiguraci ''sshd'' nastav:
  
-Vygenerovaný klíč so vložíme v domovském adresáři na serveru do souboru+<code> 
 +PubkeyAuthentication yes 
 +PermitRootLogin prohibit-password 
 +PasswordAuthentication no 
 +KbdInteractiveAuthentication no 
 +</code>
  
-<code>~/.ssh/authorized_keys</code>+Nastavení bývá v ''/etc/ssh/sshd_config'' nebo v souboru načítaném z adresáře 
 +''/etc/ssh/sshd_config.d/''. U již existujících nastavení záleží na pořadí, ve 
 +kterém je ''sshd'' načte, proto vždy zkontroluj výslednou konfiguraci příkazem 
 +''sshd -T''.
  
-Nesmíme zapomenou nastavit práva k souboru:+Pokud přímé přihlášení roota nechceš vůbec, vytvoř běžný účet se ''sudo''
 +Nejprve ověř jeho klíč a funkční ''sudo'', teprve potom nastav 
 +''PermitRootLogin no''. Postup vytvoření správcovského účtu se liší podle 
 +distribuce. Přímé přihlášení roota nezakazuj, dokud nový účet skutečně 
 +nefunguje.
  
-<code>chmod 600 ~/.ssh/authorized_keys</code>+Na NixOS nepiš do generovaného ''sshd_config''Použij volby 
 +''services.openssh.settings'' v systémové konfiguraci; podrobnosti najdeš ve 
 +[[https://search.nixos.org/options?query=services.openssh|vyhledávači voleb NixOS]].
  
-Nyní se můžeme přihlásit pomocí PuTTY a soukromého klíče, který zadáme v sekci SSH -> Auth.+===== Bezpečný postup změny konfigurace =====
  
 +Chyba v nastavení SSH tě může od VPS odříznout. Postupuj proto takto:
  
-Pokud chceme zakázat přihlašování pomocí hesla es SSH, změníme konfiguraci v souboru /etc/ssh/sshd_config:+  - Nech otevřené původní funkční SSH spojení a změny prováděj v něm. 
 +  - V druhém terminálu nejprve ověř, že se přihlásíš novým klíčem. Pro cílený test můžeš použít:<code bash>ssh -o PreferredAuthentications=publickey -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no root@ADRESA_VPS</code> 
 +  - Teprve potom vypni přihlašování heslem nebo ístup roota. 
 +  - Před načtením změn zkontroluj syntaxi a výsledné hodnoty:<code bash>sshd -t 
 +sshd -T | grep -E '^(pubkeyauthentication|permitrootlogin|passwordauthentication|kbdinteractiveauthentication) '</code> 
 +  - Pokud kontrola nehlásí chybu, načti konfiguraci bez ukončení běžících spojení:<code bash>systemctl reload sshd 2>/dev/null || systemctl reload ssh</code> 
 +  - Otevři úplně nové SSH spojení, vyzkoušej přihlášení i ''sudo'', pokud ho používáš, a až potom zavři původní relaci.
  
-<code>[...] +Příkaz ''sshd -t'' musí skončit bez výstupu a s návratovým kódem 0Pokud 
-Protocol 2 +selže, konfiguraci nenačítej a nejprve chybu oprav. 
-PasswordAuthentication no + 
-UsePAM no +===== Když se odřízneš ===== 
-[...]</code>+ 
 +Pokud nové SSH spojení nefunguje, **nezavírej původní relaci**Vrať změnu, 
 +spusť ''sshd -t'', znovu načti službu a zkontroluj také 
 +[[navody:server:firewall|firewall]]. 
 + 
 +Když už žádná SSH relace nezůstala, návod ke [[navody:vps:konzole|vzdálené 
 +konzoli ve vpsAdminu]] tě provede obnovením přístupuKonzole funguje nezávisle 
 +na SSH i síťovém firewalluBěhem restartu se v ní objeví 
 +[[navody:vps:start_menu|start menu]]; volba **Run shell** spustí ''/bin/sh'' 
 +přímo ve VPS, takže konfiguraci opravíš bez přihlášení přes SSH.
  
 +Pokud běžný systém stále běží a v konzoli se můžeš přihlásit, oprav nebo obnov
 +konfiguraci, ověř ji a restartuj příslušnou službu:
  
-====== Automatické vložení klíčů ======+<code bash> 
 +sshd -t 
 +systemctl restart sshd 2>/dev/null || systemctl restart ssh 
 +</code>
  
-vpsAdmin umí do nově vytvořeného VPS vložit klíčautomatickyNejprve mu jej musíme edatTo uděláme po přihlášení v <vpsadmin-nav id="member.public-keys.add">Upravit profil → Veřejné klíče → vpravo v panelu Přidat veřejný klíč</vpsadmin-nav>.+V prostředí **Run shell** neběží systemd, takže v něm ''systemctl'' nepoužívej. 
 +Obnov funkční konfiguraci, ukonči shell íkazem ''exit'' a ve start menu zvol 
 +**Start system**Potom vyzkoušej nové SSH spojeníVzdálená konzole je pro 
 +takovou opravu určená, takžse nemusíš bát ji použít.
  
-{{ :cs:screenshots:vpsadmin:ssh-keys:add-public-key.png?300 |}}+===== Další dokumentace =====
  
-U každého klíče si můžeme vybrat, jestli se má do nových/reinstalovaných VPS nahrávat automatickyKlíče můžeme kdykoliv do běžícího VPS také nahrát pomocí formuláře v detailech VPS, hned pod formulářem na nastavení hesla.+  * [[https://man.openbsd.org/ssh|manuál klienta OpenSSH]] 
 +  * [[https://man.openbsd.org/sshd_config|referenční příručka sshd_config]] 
 +  * [[https://documentation.ubuntu.com/server/how-to/security/openssh-server/|OpenSSH server v dokumentaci Ubuntu]]
  
-{{ :cs:screenshots:vpsadmin:ssh-keys:deploy-public-key.png?300 |}} 
navody/server/ssh.txt · Poslední úprava: autor: aither