Připojení k SSH serveru
Připojení k Linux VPS přes SSH z Termuxu a Fedora Silverblue.
Luí, HEX & spol.
Table of content
- Připojení z Termuxu a Fedora Silverblue
- 1. Co budete potřebovat
- 2. Připojení z Termuxu
- 3. Připojení z Fedora Silverblue
- 4. SSH klíče
- 5. Nahrání veřejného klíče na server
- 6. Připojení pomocí konkrétního klíče
- 7. Konfigurace zkráceného příkazu
- 8. Změna nebo odstranění passphrase
- 9. Ukončení SSH připojení
- 10. Odstranění SSH klíče ze zařízení
- 11. Odstranění veřejného klíče ze serveru
- 12. Časté chyby
- 13. Bezpečnostní doporučení
- Rychlý přehled příkazů
Připojení z Termuxu a Fedora Silverblue
Tato dokumentace popisuje připojení k Linux VPS serveru pomocí SSH z telefonu s aplikací Termux a z notebooku s Fedora Silverblue. Obsahuje také nastavení SSH klíčů, změnu passphrase, ukončení připojení a odstranění klíčů.
1. Co budete potřebovat
Připravte si:
- IP adresu nebo hostname VPS serveru, například
203.0.113.10. - Uživatelské jméno na serveru, například
rootneboadmin. - SSH port serveru. Standardně se používá port
22. - Heslo uživatele nebo SSH klíč.
Příklad údajů:
IP adresa: 203.0.113.10
Uživatel: admin
Port: 22
Nepoužívejte doslova IP adresu
203.0.113.10; jde pouze o dokumentační příklad. Nahraďte ji skutečnou adresou svého VPS.
2. Připojení z Termuxu
Instalace OpenSSH
V Termuxu spusťte:
pkg update && pkg upgrade -y
pkg install openssh -y
Připojení heslem
Pro standardní port 22 použijte:
ssh UZIVATEL@IP_ADRESA
Například:
ssh admin@203.0.113.10
Pokud server používá jiný port, například 2222:
ssh -p 2222 admin@203.0.113.10
Při prvním připojení SSH zobrazí otisk (fingerprint) hostitelského klíče serveru. Nezadávejte yes jen proto, že IP adresa vypadá správně. Nejdříve porovnejte otisk s hodnotou získanou důvěryhodným kanálem, například od správce serveru nebo v ovládacím panelu poskytovatele. Potvrďte yes pouze při shodě. Poté zadejte heslo uživatele na VPS.
Pokud SSH později oznámí, že se otisk hostitelského klíče změnil, připojení přerušte a ověřte změnu se správcem serveru. Neodstraňujte záznam ze known_hosts ani nepotvrzujte nový klíč, dokud není změna ověřena.
3. Připojení z Fedora Silverblue
Otevřete aplikaci Terminal a spusťte stejný příkaz jako v Termuxu:
ssh admin@203.0.113.10
Pro jiný port:
ssh -p 2222 admin@203.0.113.10
Fedora Silverblue běžně obsahuje SSH klienta. Pokud příkaz ssh není dostupný, ověřte jeho přítomnost:
command -v ssh
Případně lze SSH klienta nainstalovat v Toolbox kontejneru:
toolbox create
toolbox enter
sudo dnf install openssh-clients
4. SSH klíče
SSH klíč se skládá ze dvou částí:
- Privátní klíč zůstává pouze na vašem zařízení a nesmí se nikomu posílat.
- Veřejný klíč se nahraje na server do souboru
~/.ssh/authorized_keys.
Díky tomu se můžete přihlašovat bez zadávání hesla uživatele na serveru. Přístup může stále vyžadovat passphrase k privátnímu klíči.
Vygenerování klíče
Na notebooku nebo v Termuxu spusťte:
ssh-keygen -t ed25519
Program se zeptá na umístění souboru:
Enter file in which to save the key (.../.ssh/id_ed25519):
Pro výchozí umístění stiskněte Enter.
Poté se zobrazí:
Enter passphrase (empty for no passphrase):
Zadejte bezpečnou passphrase, nebo stiskněte Enter a ponechte ji prázdnou. Bezpečnější je passphrase použít, zejména na notebooku.
Vytvoří se obvykle tyto soubory:
~/.ssh/id_ed25519 # privátní klíč
~/.ssh/id_ed25519.pub # veřejný klíč
Kontrola vytvořených klíčů
ls -la ~/.ssh
Pokud máte klíč RSA, může se jmenovat například:
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
Používejte skutečný název souboru. Pokud máte id_ed25519, nepoužívejte v příkazu id_rsa.
5. Nahrání veřejného klíče na server
Nejjednodušší možností je příkaz ssh-copy-id:
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@203.0.113.10
Pro jiný port:
ssh-copy-id -p 2222 -i ~/.ssh/id_ed25519.pub admin@203.0.113.10
Příkaz se obvykle jednou zeptá na heslo uživatele na serveru. Veřejný klíč potom uloží do:
~/.ssh/authorized_keys
Pokud příkaz ssh-copy-id není dostupný, lze veřejný klíč zkopírovat ručně. Na lokálním zařízení zobrazte jeho obsah:
cat ~/.ssh/id_ed25519.pub
Zkopírujte celý jeden řádek a na serveru spusťte:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo 'SEM_VLOZTE_CELY_VEREJNY_KLIC' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
6. Připojení pomocí konkrétního klíče
Pokud SSH klíč není ve výchozím umístění nebo se automaticky nepoužívá, uveďte ho pomocí volby -i:
ssh -i ~/.ssh/id_ed25519 admin@203.0.113.10
Pro vlastní port:
ssh -i ~/.ssh/id_ed25519 -p 2222 admin@203.0.113.10
Pokud se zobrazí chyba podobná této:
Identity file /home/uzivatel/.ssh/id_rsa not accessible: No such file or directory
zkontrolujte skutečné názvy souborů:
ls -la ~/.ssh
Pravděpodobně máte například id_ed25519 místo id_rsa.
7. Konfigurace zkráceného příkazu
Pro pohodlnější připojení vytvořte nebo upravte soubor:
nano ~/.ssh/config
Vložte například:
Host muj-vps
HostName 203.0.113.10
User admin
Port 22
IdentityFile ~/.ssh/id_ed25519
Nastavte oprávnění:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
Poté se připojíte pouze příkazem:
ssh muj-vps
8. Změna nebo odstranění passphrase
Passphrase existujícího klíče lze změnit příkazem:
ssh-keygen -p -f ~/.ssh/id_ed25519
Program nejprve vyžádá současnou passphrase a potom novou passphrase dvakrát.
Chcete-li passphrase odstranit, stiskněte Enter při zadávání nové passphrase a znovu Enter při jejím potvrzení. Odstranění passphrase snižuje ochranu privátního klíče, proto je vhodné zařízení zabezpečit heslem nebo šifrováním disku.
9. Ukončení SSH připojení
Pro běžné ukončení vzdálené relace použijte:
exit
Nebo stiskněte Ctrl+D.
Později se můžete znovu připojit stejným příkazem:
ssh muj-vps
Případné programy spuštěné přímo v SSH relaci mohou být při odpojení ukončeny. Pro dlouhé úlohy použijte na serveru tmux nebo screen.
Práce s tmux
Na serveru nainstalujte tmux podle distribuce, například:
sudo apt update && sudo apt install tmux
Vytvořte relaci:
tmux new -s prace
Odpojte se bez ukončení programů stisknutím:
Ctrl+B, potom D
Po opětovném přihlášení se vraťte do relace:
tmux attach -t prace
10. Odstranění SSH klíče ze zařízení
Nejprve si zobrazte obsah adresáře:
ls -la ~/.ssh
Pro odstranění klíče Ed25519:
rm ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub
Pro odstranění RSA klíče:
rm ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
Před použitím příkazu rm ověřte, že mažete správný klíč. Odstraněním privátního klíče ztratíte možnost přihlásit se pomocí tohoto klíče z daného zařízení.
Pokud je klíč načtený v ssh-agent, můžete ho také odebrat z agenta:
ssh-add -d ~/.ssh/id_ed25519
Pro odebrání všech klíčů z agenta:
ssh-add -D
11. Odstranění veřejného klíče ze serveru
Přihlaste se na server jinou funkční metodou nebo jiným účtem. Poté otevřete:
nano ~/.ssh/authorized_keys
Najděte řádek odpovídající veřejnému klíči a odstraňte celý řádek. Soubor uložte a zkontrolujte oprávnění:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Po odstranění klíče se pomocí něj již nebude možné přihlásit. Neodstraňujte jediný funkční klíč, pokud nemáte k serveru jiný přístup.
12. Časté chyby
Permission denied (publickey)
Možné příčiny:
- Na serveru není nahrán správný veřejný klíč.
- Používáte nesprávného uživatele.
- Používáte nesprávný privátní klíč.
- Soubor
authorized_keysnebo adresář.sshmá nesprávná oprávnění.
Zkuste explicitně uvést klíč:
ssh -i ~/.ssh/id_ed25519 -v admin@203.0.113.10
Volba -v zobrazí podrobnosti SSH připojení.
Connection refused
Server pravděpodobně neposlouchá na zadaném portu, SSH služba není spuštěná nebo port blokuje firewall. Ověřte správný port u poskytovatele VPS.
Connection timed out
Může jít o nesprávnou IP adresu, blokování firewallu, vypnutý server nebo síťový problém.
No such file or directory
Ověřte existenci adresáře a klíčů:
ls -la ~/.ssh
Cesta ~/.ssh/id_rsa není univerzální. U klíčů Ed25519 použijte obvykle ~/.ssh/id_ed25519.
13. Bezpečnostní doporučení
- Privátní klíč nikdy neposílejte e-mailem ani nevkládejte do veřejného repozitáře.
- Používejte passphrase, zejména na přenosném zařízení.
- Veřejný klíč můžete bezpečně nahrát na server; privátní klíč nikoli.
- Po ověření, že klíč funguje, zvažte zakázání přihlašování heslem na serveru.
- Před zakázáním hesel si ponechte otevřenou relaci a ověřte nové připojení v druhém terminálu.
- Pro administraci se vyhněte přímému přihlášení jako
root, pokud VPS umožňuje použití běžného uživatele sesudo.
Rychlý přehled příkazů
# Připojení heslem
ssh admin@203.0.113.10
# Připojení přes jiný port
ssh -p 2222 admin@203.0.113.10
# Vytvoření klíče
ssh-keygen -t ed25519
# Nahrání veřejného klíče
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@203.0.113.10
# Připojení konkrétním klíčem
ssh -i ~/.ssh/id_ed25519 admin@203.0.113.10
# Změna passphrase
ssh-keygen -p -f ~/.ssh/id_ed25519
# Ukončení relace
exit