SSH

Překlad(y): Němčina – English – Français – Italiano – Español – Português Brasileiro

ToDo: merge (a přeložit) tato stránka a francouzský (úplnější)

Úvod

SSH znamená Secure Shell a je protokol pro bezpečné vzdálené přihlášení a další zabezpečené služby sítě přes nezabezpečenou sítě1. Viz Wikipedia-Secure Shell pro obecnější informace a ssh, LSH-client nebo dropbear pro implementace softwaru SSH, z nichž OpenSSH je nejoblíbenější a nejpoužívanější2. SSH nahrazuje nešifrované telnet, rlogin a rsh a přidává mnoho funkcí.

V tomto dokumentu budeme používat OpenSSH command suite, bude také předpokládat, že tyto dvě proměnné jsou definovány:

remote_host=<the remote computer>remote_user=<your user name on $remote_host>

Takže, pokud chcete použít recepty níže, první sadu těchto proměnných na název vzdáleného počítače a uživatelské jméno na vzdáleném počítači. Potom vyjmout a vložit níže uvedené příkazy by měly fungovat. remote_host může být také IP adresa.

instalace

instalace klienta

normálně je klient nainstalován ve výchozím nastavení. Pokud ne, stačí spustit jako root:

apt install openssh-client

Instalace serveru

server umožňuje vzdáleně připojit a dostane nainstalován, běží jako root:

apt install openssh-server

Konfigurační soubory

hlavní konfigurační soubory jsou v adresáři /etc/ssh :

  • ssh_config : klientský konfigurační soubor

  • sshd_config : konfigurační soubor serveru

navíc tento adresář obsahuje soukromý/veřejný klíč, dvojici identifikovat svého hostitele :

  • ssh_host_dsa_key
  • ssh_host_dsa_key.pub
  • ssh_host_rsa_key
  • ssh_host_rsa_key.pub

od OpenSSH 5.73 je k dispozici nový pár soukromých / veřejných klíčů:

  • ssh_host_ecdsa_key
  • ssh_host_ecdsa_key.pub

od OpenSSH 6.54 je k dispozici nový pár soukromých / veřejných klíčů:

  • ssh_host_ed25519_key
  • ssh_host_ed25519_key.hospoda

Regenerační klíče hostitele

rm /etc/ssh/ssh_host_*dpkg-reconfigure openssh-server

Vzdálené přihlášení

S heslem

Pokud se chcete přihlásit na $remote_host jako uživatel $remote_user jednoduše zadejte

ssh $remote_user@$remote_host

a potom zadejte své heslo.

Pokud uživatelská jména na místní a vzdálené počítače jsou identické, můžete přetáhnout $remote_user@-část a jednoduše napsat

ssh $remote_host

Pokud je to poprvé, co jste přihlášení ke vzdálenému počítači, ssh se zeptá, zda jste si jisti, že chcete připojit ke vzdálenému počítači. Odpověď “ Ano “ Po ověření otisku prstu vzdáleného počítače zadejte heslo a ssh vás připojí ke vzdálenému hostiteli.

použití sdílených klíčů

jednou z funkcí ssh je použití dvojice soukromých / veřejných klíčů pro připojení ke vzdálenému hostiteli. Také známý jako SSH klíče. Tato metoda vám umožňuje přihlásit se ke vzdálenému hostiteli bez zadání hesla pokaždé. Chcete-li to provést, musíte vygenerovat pár soukromých/veřejných klíčů na místním počítači a uložit veřejný klíč na vzdáleném hostiteli.

generovat klíč, použijte program ssh-keygen takto

ssh-keygen -t rsa

Tento program generuje pár veřejného a soukromého klíče v adresáři ~/.klíč. Program nejprve požádá o cílové soubory pro klíče, ve výchozím nastavení umístěné v ~/.klíč. Poté je požadováno přístupové heslo.

Poznámka: doporučujeme nenechávat heslo prázdné. Útočník, který se zmocní vašeho soukromého klíče, se jinak může připojit k hostitelům, kde jste uložili veřejný klíč, protože přístupové heslo je prázdné. Vyberte dlouhé a složité přístupové heslo.

váš soukromý klíč je id_rsa (nedávejte jej někomu jinému), váš veřejný klíč je id_rsa.hospoda.

zkopírování veřejného klíče do vzdáleného hostitele pomocí příkazu ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub $remote_user@$remote_host

Nyní můžete jednoduše připojit ke vzdálené hostitele a passphase je žádal. Po dokončení se připojíte ke vzdálenému hostiteli. V případě nového připojení nebude přístupové heslo znovu požadováno během celé relace.

Klíče řízení

Pomocí GUI

Volitelně, koník je GNOME aplikace, která snadno spravovat šifrovací klíče a hesla přes intuitivní Grafické Uživatelské Rozhraní (GUI). Mořský koník je schopen provádět různé operace. Například vytvořte klíče SSH nebo PGP, nakonfigurujte je a ukládejte do mezipaměti. Nabízet.

zabezpečení

SSH Server

ve výchozím nastavení je SSH server relativně bezpečný. S pomocí některých osvědčených postupů, možností konfigurace a externích nástrojů je možné ještě ztížit „roboty“ a sušenky

osvědčené postupy se serverem SSH

  • /!\ použijte aktualizace zabezpečení openssh-server co nejdříve. Což umožňuje ochranu před známými bezpečnostními otvory.

  • aktivujte ověřování klíčů SSH pouze pomocí hesel / přístupových frází. Deaktivujte pouze ověření heslem.

  • Zvažte použití fail2ban, který je soubor protokolu sledovat to automaticky zabanuje IP adresu po nastaveném počtu neúspěšných pokusů o přihlášení. Který automaticky chrání před útoky hrubou silou.

  • více osvědčených postupů pro používání ssh na https://lackof.org/taggart/hacking/ssh/

možnosti konfigurace

(!) Jeden by měl upravit soubor /etc/ssh/sshd_config změnit parametry a pak restartovat ssh server s

service ssh restart
  • Deaktivovat pomocí hesla pro autentizaci (password authentication).

  • deaktivujte pomocí kořenového účtu (PermitRootLogin no).

  • Pouze povolit přihlášení od určitých uživatelů nebo skupin (Uživatelů a AllowGroups)

{jsem} volby AllowUsers a AllowGroups nezlepší bezpečnost SSH server. V některých případech však jejich použití umožňuje odolávat útoku hrubou silou o něco déle.

externí nástroje

  • fail2ban: umožňuje automaticky zakázat IP adresy, které se pokoušejí hrubou silou SSH serveru pomocí iptables.

  • denyhosts : jako fail2ban, denyhosts umožňuje blokovat IP adresy se snaží hrubou silou připojení k ssh. Ale na rozdíl od fail2ban nepoužívá iptables, ale soubor / etc / hosts.odepřít.

SSH klient

osvědčené postupy s SSH klientem

  • /!\ použijte aktualizace zabezpečení OpenSSH-client co nejdříve. Což umožňuje ochranu před známými bezpečnostními otvory.

  • použijte ověřování klíčů SSH. Spíše než ověřování heslem.

  • přidejte silná hesla / hesla ke svým SSH klíčům. Tím se snižuje riziko útoků hrubou silou.

Další Funkce

Zobrazit soubory v GUI

Ve správci souborů, jako je Konqueror, Dolphin, Krusader a Midnight Commander můžete použít RYBY pro prohlížení souborů v GUI pomocí:

fish://username@server_name_or_ip

Další Příkazy

scp

scp je nástroj příkazového řádku, který umožňuje přenos souborů mezi dvěma stroje.

  • odeslání souboru:
scp $source_file $remote_user@$remote_host:$destination_file
  • Kopírování souboru do místního počítače:
scp $remote_user@$remote_host:$source_file $destination_file

sftp

textovém režimu

grafický režim

clusterssh

ssh-agent a ssh-add

ssh-agent je užitečné utility pro správu soukromých klíčů a jejich přístupová hesla. Většina desktopových prostředí v Debianu již bude nastavena tak, aby spouštěla ssh-agent (prostřednictvím uživatelských služeb systemd nebo /etc/X11/Xsession), takže jej nemusíte spouštět ručně.

# Check if ssh-agent is runningenv | grep -i ssh

stále budete muset říct agentovi, aby spravoval vaše klíče.

# List keys managed by the agentssh-add -l# Add your ssh keyssh-add ~/.ssh/your_private_key

když je nejprve potřeba soukromý klíč, zobrazí se výzva k zadání přístupového hesla. ssh-agent si pak zapamatuje klíč, aby se vaše přístupové heslo již nezeptalo.

keychain

Keychain, poskytovaný balíčkem keychain, je shell skript umožňující použití agenta ssh ve více relacích stejného počítače. Ve skutečnosti po prvním spuštění ssh-agent vytvoří trvalý socket umožňující komunikaci s ssh. Na tento soket se odkazuje pouze v prostředí relace, ve které byl agent spuštěn. Keychain umožňuje detekovat agenta a šířit přístup k tomuto agentovi do jiných relací; to umožňuje použít jednu instanci ssh-agenta na uživatele na počítači.

ssh-askpass

ssh-askpass je nástroj pro jednoduchou otázku hesla soukromého klíče při jeho použití. Několik implementací existují:

  • x11-ssh-askpass : verze pro X11

  • kaskpass : integrace ssh-askpass do KDE prostředí

  • ssh-askpass-gnome : integrace ssh-askpass do Gnome prostředí

libpam-usb

libpam-usb je nástroj (k dispozici pouze pro Debian Jessie), což umožňuje ověřování s USB stick. Tento balíček obsahuje užitečné utilty: pamusb-agent. Tento nástroj, jakmile je správně nakonfigurován, umožňuje načíst klíče SSH přítomné na USB flash disku po připojení a uvolnit je, když je odpojen.

vzdálené příkazy

pokud chcete spustit pouze jeden příkaz na vzdáleném počítači, nemusíte se přihlašovat. Můžete říct ssh spustit příkaz bez přihlášení, například,

ssh $remote_user@$remote_host 'ls *.txt'

vypíše všechny soubory s příponou .txt na vzdáleném počítači. To funguje s jedním klíště uvozovek ‚…’jak je znázorněno zde, s dvojitými uvozovkami“…“a bez uvozovek. Mezi těmito třemi případy však mohou být rozdíly, které zde ještě nejsou zdokumentovány.

SSH do Debianu z jiného operačního systému

  • PuTTY je aplikace emulátoru terminálu, která může fungovat jako klient pro ssh. Je široce používán uživateli Windows.

  • Wikipedie má Comparison_of_SSH_clients

Dobré praktiky SSH použití

musíte přečíst tento: https://lackof.org/taggart/hacking/ssh/

Tento dokument shrnuje mnoho dobrých postupů, které pravidelně SSH uživatelé by měli dodržovat, aby nedošlo k ohrožení bezpečnosti jejich účtů (a celý stroj ve stejnou dobu).

nakonfigurujte ~/.ssh / config pro odeslání pouze správného klíče.

Host master.debian.org User account IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

řešení problémů

neshoda verze OpenSSL. Postavený proti 1000105f, máte 10001060

pokud se při spuštění démona ssh zobrazí chybová zpráva, musíte spustit:

apt install openssh-server openssh-client

Viz také chyba #732940.

SSH visí

problém

pokoušíte se SSH do vzdáleného počítače. Ale během SSH log-in relace visí / zamrzne na neurčito. Takže vám nebude nabídnut příkazový řádek. A nejste schopni použít žádné příkazy ssh : ( při použití režimu ladění SSH relace visí na tomto řádku debug2: kanál 0: otevřete potvrdit rwindow 0 rmax 32768

možná příčina

s některými směrovači za NAT a při použití OpenSSH. Během nastavení relace, po zadání hesla, OpenSSH nastaví pole TOS (typ služby) v IP datagramu. Směrovač se na to dusí. Výsledkem je, že vaše relace SSH visí na neurčito. Jinými slovy, příkazy nebo připojení SSH zřídka fungují nebo vůbec nefungují.

rozlišení s IPQoS 0x00

, dokud výrobce routeru neopraví svůj firmware. Zde je jedna možnost, jak tento problém vyřešit:

  1. zkontrolujte znovu OpenSSH-server a OpenSSH-klient verze jsou 5.7 nebo novější. Například níže uvedené rozlišení by mělo fungovat s Debianem 7.11 nebo novějším, protože přichází s OpenSSH verze 6.0.

  2. Upravit jeden z těchto dvou souborů umístěných v:

    ~/.ssh/config

    nebo

    /etc/ssh/ssh_config

    Poznámka: konfigurační soubor na uživatele a ssh_config soubor je pro všechny uživatele a systém široký. Pokud si nejste jisti, upravte příslušný konfigurační soubor uživatele.

    obsah souboru před

    Host *

    obsah souboru po

    Host * IPQoS 0x00
  3. pokud již máte otevřená okna terminálu/konzoly. Úplně zavřete všechny. Pokud tak učiníte, uzavřete všechny aktivní relace SSH.
  4. není třeba restartovat OpenSSH nebo váš Debian. Zkuste znovu SSH do libovolného vzdáleného serveru. Mělo by to fungovat. Udělal jste úspěšně opraven problém, že :)

    Díky Joe a catmaker pro tento tip :)

    Související dokumentace na https://www.openssh.com/txt/release-5.7

Usnesení s netcat

/!\ varování: doporučuje se zvážit použití tohoto jiného rozlišení s ipqos 0x00 namísto použití volby netcat / ProxyCommand nc %h %p. Protože IPQoS 0x00 je oficiální vestavěná možnost OpenSSH. Také IPQoS 0x00 je přímější způsob, jak tento problém vyřešit, a potenciálně bezpečnější možnost. Protože IPQoS 0x00 používá SSH vestavěné šifrování pro bezpečné přenosy. V porovnání s netcat není šifrované přenosy. Zdroje: 12. Pokud se rozhodnete použít netcat / ProxyCommand NC %h %p možnost číst dál.

další možností, jak vyřešit problém SSH visí, je použití ProxyCommand nc %h %p. Postupujte podle stejných kroků jako výše uvedené rozlišení s IPQoS 0x00. Ale nahraďte IPQoS 0x00

ProxyCommand nc %h %p

Udržujte připojení SSH naživu

z bezpečnostních důvodů je ve výchozím nastavení připojení SSH po nastavené době automaticky uzavřeno. V některých případech však chcete toto připojení ponechat otevřené. Například cloudové úložiště přes připojení SSH.

/!\ varování: před aktivací, která udržuje připojení SSH naživu možnost. Doporučuje se zvážit zabezpečení klienta SSH I serveru SSH. Protože například existuje riziko, že pokud uživatelé nechají otevřenou relaci SSH a jejich počítač bez dozoru a odemčený. Kdokoli se může k tomuto počítači přiblížit a pak využít toto otevřené připojení SSH. Například pomocí příkazu passwd a změňte heslo. A tak získat přístup k serveru. Jinými slovy, před aktivací, která udržuje připojení SSH naživu, doporučujeme použít váš nejlepší úsudek a správné bezpečnostní postupy.

Pro Debian 7.x server

kroky k udržení připojení SSH naživu.

na serveru SSH upravit/etc/ssh / sshd_config soubor a přidat následující v dolní části tohoto souboru.

# Keep client SSH connection alive by sending every 300 seconds a small keep-alive packet to the server in order to use ssh connection. 300 seconds equal 5 minutes.ClientAliveInterval 300 # Disconnect client after 3333 "ClientAlive" requests. Format is (ClientAliveInterval x ClientAliveCountMax). In this example (300 seconds x 3333) = ~999,900 seconds = ~16,665 minutes = ~277 hours = ~11 days.ClientAliveCountMax 3333

jako uživatel root restartujte službu SSH:

service sshd restart

Vezměte prosím na vědomí, že na nedávných systémech Debianu (např. Wheezy 7 s aktuálními aktualizacemi od listopadu. 2015), výše uvedený příkaz již nefunguje a vrátí chybu:

sudo service sshd restartsshd: unrecognized service

následující práce však fungují:

sudo service ssh restart Restarting OpenBSD Secure Shell server: sshd.

Viz také

  • obrazovka – terminál multiplexer s VT100/ANSI emulace terminálu

  • tmux – alternativní terminal multiplexer

CategoryNetwork CategorySoftware

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.