Připojení k SSH serveru

Připojení k Linux VPS přes SSH z Termuxu a Fedora Silverblue.

Luí, HEX & spol.

Table of content
  1. Připojení z Termuxu a Fedora Silverblue
  2. 1. Co budete potřebovat
  3. 2. Připojení z Termuxu
    1. Instalace OpenSSH
    2. Připojení heslem
  4. 3. Připojení z Fedora Silverblue
  5. 4. SSH klíče
    1. Vygenerování klíče
    2. Kontrola vytvořených klíčů
  6. 5. Nahrání veřejného klíče na server
  7. 6. Připojení pomocí konkrétního klíče
  8. 7. Konfigurace zkráceného příkazu
  9. 8. Změna nebo odstranění passphrase
  10. 9. Ukončení SSH připojení
    1. Práce s tmux
  11. 10. Odstranění SSH klíče ze zařízení
  12. 11. Odstranění veřejného klíče ze serveru
  13. 12. Časté chyby
    1. Permission denied (publickey)
    2. Connection refused
    3. Connection timed out
    4. No such file or directory
  14. 13. Bezpečnostní doporučení
  15. 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:

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í:

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:

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í

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