1. Úvod
Používáním SSH na Ubuntu můžete bezpečně přistupovat k serverům nebo počítačům a ovládat je na dálku. Tento článek poskytuje podrobný výklad SSH – od základních pojmů a instalace SSH serveru na Ubuntu až po osvědčené postupy zabezpečení a řešení problémů – srozumitelným způsobem vhodným i pro začátečníky.
Co je SSH?
SSH (Secure Shell) je protokol, který umožňuje bezpečná vzdálená připojení k počítačům přes síť. Na rozdíl od tradičních protokolů, jako jsou Telnet nebo FTP, šifruje SSH komunikační data, čímž výrazně snižuje riziko odposlechu a manipulace.
Hlavní případy použití SSH na Ubuntu
Hlavní scénáře, ve kterých se SSH na Ubuntu používá, zahrnují následující:
- Správa vzdálených serverů : Ovládání Ubuntu serverů z dálky
- Přenos souborů : Bezpečná výměna souborů pomocí SCP nebo SFTP
- Přesměrování portů : Navazování zabezpečených vzdálených spojení
Co se v tomto článku naučíte
- Základní pojmy a mechanismy SSH
- Jak nainstalovat SSH server na Ubuntu
- Jak konfigurovat SSH připojení a řešit chyby
- Osvědčené postupy zabezpečení pro SSH
2. Základní koncepty SSH
Pro efektivní používání SSH je nezbytné pochopit jeho základní pojmy. V této kapitole vysvětlujeme, jak SSH funguje, a rozdíly mezi metodami autentizace.
Jak SSH funguje
SSH je protokol, který navazuje zabezpečené spojení mezi klientem a serverem. Ve výchozím nastavení používá pro šifrovanou komunikaci TCP port 22.
Hlavní funkce
- Vzdálené přihlášení : Spouštění příkazů na serveru
- Přenos souborů : Bezpečné odesílání dat pomocí SCP nebo SFTP
- Přesměrování portů : Připojení k dalším službám přes SSH
Metody autentizace SSH
SSH primárně nabízí dvě metody autentizace:
Autentizace heslem
- Přihlášení pomocí uživatelského jména a hesla
- Jednoduché, ale náchylné k útokům hrubou silou
Autentizace pomocí veřejného klíče
- Autentizace pomocí páru veřejného a soukromého klíče
- Bezpečnější a ve výchozím nastavení doporučená
Výhody SSH
- Šifrovaná komunikace : Chrání přenášená data
- Jednoduchá vzdálená správa : Přístup odkudkoli
- Zvýšené zabezpečení : Pomáhá předcházet neoprávněnému přístupu
3. Instalace SSH serveru na Ubuntu
Pro používání SSH na Ubuntu musíte nainstalovat balíček OpenSSH server. Tato kapitola popisuje, jak jej nainstalovat a nakonfigurovat.
Instalace OpenSSH serveru
OpenSSH server můžete na Ubuntu nainstalovat pomocí následujících příkazů:
sudo apt update
sudo apt install openssh-server
Po instalaci ověřte, že služba SSH běží:
sudo systemctl status ssh
Spouštění a správa SSH služby
Pro ruční spuštění nebo zastavení služby SSH použijte následující příkazy:
# Start SSH
sudo systemctl start ssh
# Enable SSH to start automatically after reboot
sudo systemctl enable ssh
# Stop SSH
sudo systemctl stop ssh
Konfigurace UFW (Uncomplicated Firewall)
Pokud je UFW povolený, může blokovat SSH připojení. Povolit SSH port (22) můžete následujícími příkazy:
sudo ufw allow ssh
sudo ufw enable
4. Konfigurace SSH připojení
Pro bezpečné používání SSH je nezbytná správná konfigurace. Tato kapitola vysvětluje, jak nastavit autentizaci pomocí veřejného klíče.
Generování páru klíčů
Na klientském počítači spusťte následující příkaz pro vytvoření páru veřejného/soukromého klíče:
ssh-keygen -t rsa -b 4096
Ve výchozím nastavení je soukromý klíč uložen v ~/.ssh/id_rsa a veřejný klíč v ~/.ssh/id_rsa.pub.
Nahrání veřejného klíče na server
Přeneste vygenerovaný veřejný klíč na SSH server:
ssh-copy-id username@server-ip-address
Nebo přeneste ručně:
scp ~/.ssh/id_rsa.pub username@server-ip-address:~/
Na serveru spusťte následující příkazy pro umístění veřejného klíče do správného adresáře:
mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
Úprava sshd_config
Otevřete konfigurační soubor SSH pro vylepšení bezpečnostních nastavení:
sudo nano /etc/ssh/sshd_config
Zkontrolujte a upravte následující položky konfigurace:
# Disable password authentication (use public key only)
PasswordAuthentication no
# Disable root login
PermitRootLogin no
# Change the SSH port (example: 2222)
Port 2222
Po provedení změn restartujte službu SSH:
sudo systemctl restart ssh
5. Provádění SSH připojení
Jakmile je SSH server nakonfigurován na Ubuntu, můžete se připojit z klientského počítače. Tato kapitola vysvětluje základní použití SSH a metody připojení, když je změněn port.
Základní příkaz pro SSH připojení
Použijte následující příkaz k připojení z SSH klienta k serveru:
ssh username@server-ip-address
Například, pokud je IP serveru 192.168.1.10 a uživatelské jméno je ubuntu, napište:
ssh ubuntu@192.168.1.10
Při prvním připojení bude zobrazen otisk serveru. Zadejte yes pro přijetí a pokračování.
Připojení po změně čísla portu
Pokud jste změnili SSH port – například na 2222 – použijte možnost -p:
ssh -p 2222 ubuntu@192.168.1.10
Připojení s privátním klíčem
Pokud je nakonfigurována autentizace veřejným klíčem, specifikujte privátní klíč pomocí možnosti -i:
ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10
Spouštění vzdálených příkazů přes SSH
Můžete spustit příkazy přímo na vzdáleném serveru bez interaktivního přihlášení:
ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"
Tento přístup umožňuje efektivní automatizaci a vzdálené operace pomocí skriptů.
Přenos souborů pomocí SCP
Můžete přenášet soubory mezi lokálním PC a vzdáleným serverem pomocí SSH.
Lokální → Vzdálený
scp filename username@server-ip-address:/remote/directory
Příklad:
scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/
Vzdálený → Lokální
scp username@server-ip-address:/remote/filename /local/directory
Příklad:
scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./
Správa souborů pomocí SFTP
Můžete také spravovat soubory pomocí SFTP:
sftp ubuntu@192.168.1.10
Po připojení můžete spustit následující příkazy:
ls # List files
cd # Change directory
put filename # Upload a local file to the remote server
get filename # Download a remote file to the local machine
exit # Exit the connection
6. Řešení problémů s SSH připojeními
Není neobvyklé narazit na problémy při připojování přes SSH. Tato kapitola popisuje běžné problémy a jak je řešit.
Běžné příčiny chyb SSH připojení a řešení
Když SSH připojení selže, příčina je obvykle jedna z následujících:
1. SSH server neběží
Nejprve ověřte, že SSH server běží správně:
sudo systemctl status ssh
Řešení:
- Pokud je SSH server zastaven, spusťte ho následujícím příkazem:
sudo systemctl start ssh
- Aby se SSH automaticky spouštěl po restartu, spusťte:
sudo systemctl enable ssh
2. Firewall (UFW) blokuje SSH
Pokud je povoleno UFW (Uncomplicated Firewall), může být SSH přístup blokován:
Řešení:
- Zkontrolujte aktuální konfiguraci UFW:
sudo ufw status
- Povolte přístup SSH:
sudo ufw allow ssh
(Pokud používáte vlastní port, spusťte sudo ufw allow <port-number>)
- Restartujte UFW:
sudo ufw reload
3. Číslo portu bylo změněno
Pokud SSH server nepoužívá výchozí port 22, musíte při připojování specifikovat správný port:
Řešení:
- Zkontrolujte číslo portu na serveru:
sudo grep Port /etc/ssh/sshd_config
- Specifikujte správný port na klientovi:
ssh -p 2222 username@server-ip-address
4. Nesprávná oprávnění SSH klíče
Pokud používáte autentizaci pomocí veřejného klíče, nesprávná oprávnění klíče mohou zabránit připojení.
Řešení:
- Nastavte oprávnění pro soukromý klíč:
chmod 600 ~/.ssh/id_rsa
- Nastavte oprávnění pro veřejný klíč:
chmod 644 ~/.ssh/authorized_keys
5. Neshoda hostitelského klíče
Pokud se na serveru změnil SSH hostitelský klíč, klient může zobrazit chybu jako: „UPOZORNĚNÍ: IDENTIFIKACE VZDÁLENÉHO HOSTITELE SE ZMĚNILA!“
Řešení:
- Odstraňte starý hostitelský klíč:
ssh-keygen -R <server-ip-address>
- Zkuste se připojit znovu:
ssh username@server-ip-address
6. Kontrola SSH logů
Pro identifikaci podrobných chybových zpráv SSH zkontrolujte soubory logů na serveru:
sudo journalctl -u ssh --no-pager | tail -n 20
Pro sledování logů v reálném čase spusťte:
sudo tail -f /var/log/auth.log
7. Problémy s časovým limitem SSH připojení
Pokud jsou SSH připojení pomalá nebo se neočekávaně odpojují, přezkoumejte následující body:
Řešení:
- Povolit KeepAlive Přidejte následující do klientova
~/.ssh/config:Host * ServerAliveInterval 60
- Upravit nastavení časového limitu na serveru Přidejte následující do
/etc/ssh/sshd_configa restartujte službu:ClientAliveInterval 60 ClientAliveCountMax 3sudo systemctl restart ssh
Shrnutí
Problémy s SSH připojením obvykle vyplývají z následujících bodů. Ve většině případů jejich kontrola problém vyřeší:
✅ Ověřte, že služba SSH běží
✅ Zkontrolujte, zda firewall neblokuje připojení
✅ Potvrďte, že je používán správný SSH port
✅ Ujistěte se, že oprávnění SSH klíče jsou nastavená správně
✅ Prohlédněte SSH logy pro identifikaci podrobných chyb

7. Zvyšování bezpečnosti SSH
SSH je výkonný nástroj pro vzdálený přístup, ale bez řádných bezpečnostních opatření se může stát cílem neoprávněného přístupu nebo útoků hrubou silou. Tato kapitola vysvětluje doporučená nastavení pro posílení bezpečnosti SSH.
1. Zakázat autentizaci heslem a použít autentizaci veřejným klíčem
Ve výchozím nastavení SSH umožňuje přihlášení heslem, což zvyšuje riziko útoků hrubou silou. Pro zlepšení bezpečnosti povolte autentizaci veřejným klíčem a zakažte autentizaci heslem.
Kroky
- Upravte
sshd_configsudo nano /etc/ssh/sshd_config
- Upravte nebo přidejte následující nastavení
PasswordAuthentication no PubkeyAuthentication yes
- Restartujte službu SSH
sudo systemctl restart ssh
Po aplikaci této konfigurace bude SSH akceptovat pouze autentizaci veřejným klíčem. Ujistěte se, že vaše SSH klíče jsou předem správně nastaveny.
2. Změna čísla portu SSH
Použití výchozího SSH portu (22) usnadňuje útočníkům cílit na servery. Změna čísla portu pomáhá snížit počet pokusů o neoprávněný přístup.
Kroky
- Otevřete
sshd_configsudo nano /etc/ssh/sshd_config
- Upravte následující řádek (příklad: změňte port na 2222)
Port 2222
- Povolte nový port ve firewallu
sudo ufw allow 2222/tcp
- Restartujte službu SSH
sudo systemctl restart ssh
- Otestujte připojení pomocí nového portu
ssh -p 2222 username@server-ip-address
3. Zakázat přihlášení jako root
Ve výchozím nastavení SSH umožňuje přihlášení jako root, což představuje vážné bezpečnostní riziko. Doporučuje se povolit SSH přístup pouze prostřednictvím běžných uživatelských účtů a používat sudo, když jsou vyžadována administrativní oprávnění.
Kroky
- Otevřete
sshd_configsudo nano /etc/ssh/sshd_config
- Upravte následující řádek
PermitRootLogin no
- Restartujte službu SSH
sudo systemctl restart ssh
4. Zabránit útokům hrubou silou pomocí Fail2Ban
Fail2Ban detekuje neoprávněné pokusy o přihlášení a automaticky blokuje IP adresy, které překročí určitý počet neúspěchů.
Instalace a konfigurace
- Nainstalujte Fail2Ban
sudo apt install fail2ban -y
- Zkopírujte výchozí konfigurační soubor
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Upravte
jail.localsudo nano /etc/fail2ban/jail.local
- Upravte sekci
[sshd][sshd] enabled = true maxretry = 5 bantime = 600 findtime = 600
maxretry: Počet povolených neúspěšných pokusů o přihlášeníbantime: Délka blokování IP (sekundy)findtime: Časové okno pro počítání neúspěšných pokusů (sekundy)
- Restartujte Fail2Ban
sudo systemctl restart fail2ban
- Zkontrolujte aktuální stav Fail2Ban
sudo fail2ban-client status sshd
Shrnutí
Pro zvýšení bezpečnosti SSH použijte následující opatření:
✅ Zakázat ověřování heslem a používat ověřování veřejným klíčem
✅ Změnit port SSH, aby se snížila expozice útokům
✅ Zakázat přihlášení jako root pro minimalizaci rizik
✅ Použít Fail2Ban k prevenci útoků hrubou silou
8. Často kladené otázky (FAQ)
Tato sekce se zabývá běžnými otázkami a problémy, které se objevují při konfiguraci a používání SSH.
Q1: Proč SSH zobrazuje „Connection refused“?
Existuje několik možných příčin, proč je SSH spojení odmítnuto.
Hlavní příčiny a řešení:
- Služba SSH neběží
sudo systemctl status ssh
Řešení: Spusťte službu, pokud je zastavena.
sudo systemctl start ssh
- Firewall (UFW) blokuje SSH
sudo ufw allow ssh sudo ufw enable
- Číslo portu SSH bylo změněno Pokud SSH používá vlastní port, uveďte jej při připojení.
ssh -p 2222 username@server-ip-address
Q2: Jak změnit výchozí port SSH?
Port 22 je častým cílem útoků, takže jeho změna zvyšuje bezpečnost.
Kroky:
- Upravte konfigurační soubor SSH
sudo nano /etc/ssh/sshd_config
- Změňte direktivu
PortPort 2222
- Povolit nový port ve firewallu
sudo ufw allow 2222/tcp
- Restartujte službu SSH
sudo systemctl restart ssh
Po provedení těchto změn se připojte pomocí nového portu:
ssh -p 2222 username@server-ip-address
Q3: Co zkontrolovat, pokud ověřování veřejným klíčem nefunguje?
Zkontrolujte následující, pokud ověřování klíčem SSH selže:
- Ujistěte se, že veřejný klíč je správně nainstalován
ls -l ~/.ssh/authorized_keys
Ujistěte se, že soubor authorized_keys existuje a obsahuje správný klíč.
- Zkontrolujte oprávnění souborů
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
- Ověřte, že SSH povoluje ověřování veřejným klíčem
sudo nano /etc/ssh/sshd_config
Ujistěte se, že jsou přítomny následující položky:
PubkeyAuthentication yes
PasswordAuthentication no
- Restartujte službu SSH
sudo systemctl restart ssh
Q4: Jak povolit přístup SSH pouze z konkrétních IP adres?
Omezení přístupu SSH na konkrétní IP adresy výrazně zvyšuje bezpečnost.
Metoda 1: Upravit sshd_config
- Otevřete konfigurační soubor
sudo nano /etc/ssh/sshd_config
- Přidejte položku
AllowUsersAllowUsers username@192.168.1.100
- Restartujte službu SSH
sudo systemctl restart ssh
Metoda 2: Konfigurace firewallu (UFW)
- Povolit přístup z konkrétní IP
sudo ufw allow from 192.168.1.100 to any port 22
- Zakázat přístup z ostatních
sudo ufw deny 22
Q5: Jak změnit časový limit relace SSH?
Pokud se vaše SSH relace odpojí po nečinnosti, upravte následující nastavení.
Nastavení na straně klienta
- Přidejte následující do
~/.ssh/config:Host * ServerAliveInterval 60
Nastavení na straně serveru
- Upravte
sshd_configsudo nano /etc/ssh/sshd_config
- Přidejte nebo upravte:
ClientAliveInterval 60 ClientAliveCountMax 3
- Restartujte službu SSH
sudo systemctl restart ssh
Shrnutí
.Tento FAQ pokrývá nejčastější problémy a řešení týkající se SSH. Když nastane problém, vždy si prohlédněte logy a konfigurační nastavení, abyste určili příčinu.
✅ Jak vyřešit problémy „Connection refused“
✅ Jak změnit výchozí port SSH a správně se připojit
✅ Jak řešit selhání autentizace veřejným klíčem
✅ Jak omezit přístup SSH na konkrétní IP adresy
✅ Jak zabránit vypršení časového limitu relace SSH
9. Závěr
Tento článek vysvětlil, jak konfigurovat a používat SSH na Ubuntu, od základních konceptů po pokročilé bezpečnostní praktiky. Shrňme si klíčové body.
Hlavní poznatky
1. Základy SSH
- SSH umožňuje bezpečný vzdálený přístup přes šifrovanou komunikaci.
- Je bezpečnější než Telnet nebo FTP.
- Metody autentizace zahrnují autentizaci heslem a autentizaci veřejným klíčem .
2. Instalace SSH serveru
- Nainstalujte OpenSSH pomocí
sudo apt install openssh-server. - Ověřte stav služby pomocí
systemctl status ssh. - Povolit přístup SSH pomocí UFW příkazem
sudo ufw allow ssh.
3. Konfigurace přístupu SSH
- Připojte se pomocí
ssh username@server-ip-address. - Použijte autentizaci veřejným klíčem pro zvýšení bezpečnosti.
- V případě potřeby zakažte autentizaci heslem v
sshd_config.
4. Odstraňování problémů
- Zkontrolujte, zda SSH běží (
systemctl status ssh). - Zadejte správný port, pokud byl změněn (
ssh -p 2222 username@IP). - Ověřte oprávnění klíče v
~/.ssh/authorized_keys.
5. Zlepšení bezpečnosti
- Zakázat autentizaci heslem a spoléhat se na veřejné klíče.
- Změnit port SSH pro snížení skenovacích útoků.
- Použít Fail2Ban k blokování opakovaných neúspěšných přihlášení.
- Omezit přístup SSH na konkrétní IP adresy, kde je to možné.
Další vzdělávací zdroje
Pro prohloubení znalostí o SSH prozkoumejte následující zdroje:
📚 Oficiální dokumentace
🛠 Související nástroje
- PuTTY pro přístup SSH na Windows
- Download PuTTY
- MobaXterm pro pokročilé funkce SSH
- MobaXterm Official Site
🎥 Doporučená videa
- Vyhledejte na YouTube „Ubuntu SSH setup“ a najděte tutoriály vhodné pro začátečníky.
作成した動画を友だち、家族、世界中の人たちと共有…
Další kroky
Jakmile pochopíte, jak SSH funguje, prozkoumejte pokročilejší využití:
✅ Automatizovat správu serverů pomocí Ansible přes SSH
- Ideální pro efektivní správu více serverů.
✅ SSH tunelování a přesměrování portů
- Použijte SSH k zabezpečení vzdálených připojení k ploše nebo vytvoření tunelů podobných VPN.
✅ Monitorovat logy SSH a zlepšovat bezpečnost
- Používejte nástroje jako
fail2banalogwatchk sledování podezřelé aktivity.
Závěrečné myšlenky
Děkujeme, že jste si přečetli tento průvodce až do konce! 🎉
Správná konfigurace SSH na Ubuntu výrazně zvyšuje efektivitu a bezpečnost vzdálené správy.
Jak budete pokračovat v učení, prozkoumejte pokročilé techniky jako zabezpečené tunelování a proaktivní monitorování, abyste vytvořili ještě robustnější systémy.
Užijte si bezpečný a produktivní zážitek s SSH! 🖥️🔐



