SSH

V informatice je Zabezpečená příkazová řádka neboli SSH souhrn standardů a s tím spojený síťový protokol, které umožňují uskutečnění zabezpečeného kanálu mezi místním a vzdáleným počítačem. Používá zašifrovaný veřejný klíč k identifikaci vzdáleného počítače a (volitelně) k umožnění vzdálenému počítači identifikovat uživatele. SSH zprostředkovává utajení a integritu přenesených data mezii oběma počítači za použití šifrování message authentication codes (MACs). SSH je obvykle používán ke vzdálenému příhlášení se k počítači a ke spouštění příkazů, ale také podporuje vytváření tunelů, přesměrování TCP portů a spojení X11; může také přenášet data pomocí asociovaných protokolů SFTP a SCP. Server SSH v základu naslouchá ke standardnímu portu 22 pro TCP.. Odkaz z wikipedie

Zapnutí protokolů dobrého zabezpečení pro SSH

Není bezpečně povolit přihlašovaní jako root přes ssh. Nepřejeme si, aby se uživatelé vůbec někdy přihlašovali jako root. Debian by měl být bezpečný, ne nezabezpečený, ani nechceme uživatelům umožnit přes ssh rychlý 10 minutový útok hádáním slovníkového hesla. Je tedy na vás, abyste omezili čas příhlášení a počet pokusů.

Abyste učinili vaše ssh více bezpečným, tak stačí otevřít váš oblíbený textový editor s právy roota a pak otevřít tento soubor:

/etc/ssh/sshd_config

Pak vyhledáme problematické položky a změníme je.

Problematické položky, které musíte najít, jsou následující:

Port <požadovaný port>: Toto musí být nastaveno na správný port, který přesměrováváte z vašeho routeru. Přesměrovávání portu musí být nastaveno také na routeru. Jestli nevíte, jak to provést, tak byste možná neměli používát ssh na dálku. Debian nastavuje výchozí hodnotu na port 22, nicméně je doporučeno, abyste používali port, který vybočuje ze standardního rozpětí skenovaných portů. Řekněme, že použijeme port 5874, takže dostaneme:

Port 5874

ListenAddress <ip přístroje nebo síťového zařízení>: Neboť teď přesměrováváte port z vašeho routeru, musí mít vaše zařízení statickou ip adresu na síti, pokud však nepoužíváte lokálně dns server, ale jestli provádíte něco tak složitého a potřebujete se dívat na tyto instrukce, tak pravděpodobně děláte velkou chybu. Řekněme, že je to takto:

ListenAddress 192.168.2.134

LoginGraceTime <vteřiny na přihlášení>: Zde je nastavena absurdní hodnota 600 vteřin. Jistě vám netrvá 10 minut, abyste se přihlásili se svým heslem a uživatelským jménem, tak nastavme něco rozumného:

LoginGraceTime 45

Nyní mátě 45 vteřin na příhlášení a hackeři nebudou mít 10 minut na každý pokus, aby vám nabourali heslo.

PermitRootLogin <yes>: Proč debian nastavuje PermitRootLogin 'yes', je nepochopitelní, takže to upravíme na 'no':

PermitRootLogin no
StrictModes yes

MaxAuthTries <xxx>: Počet pokusů na přihlášení, mužete nastavit na 3 nebo 4, ale ne víc.

MaxAuthTries 2

Můžete přidat jakoukoliv z těchto položek, pokud tam nejsou::

AllowUsers <uživatelská jména s mezerami, která se mohou přes ssh příhlásit>

AllowUsers <xxx>: vytvořte uživatele pro ssh s žádnými právy, použijte adduser pro přidání takového uživatele, pak napiště jeho jméno zde:

AllowUsers může_být_kdokoliv

PermitEmptyPasswords <xxx>: vytvořte tomuto uživateli pěkně dlouhé heslo, které není možné uhodnout ani za milion let. Ten bude jediný, který se bude moc připojit pomocí ssh. Jakmile přihlášen, je možné použít su pro root přístup:

PermitEmptyPasswords no

PasswordAuthentication <xxx>: pochopitělně pro přihlásení pomocí hesla, ne klíče, je nutné, aby měla hesla nějáký obsah. Pokud nepoužíváte klíč, nastavte na yes.

PasswordAuthentication yes [jen pokud nepoužíváte klíče]

Nakonec:

service ssh restart

Nyní máte poněkud zabezpečenější ssh, které není ale zas tak úplně bezpečné, ale již jsme přidali výhradně ssh uživatele pomocí adduser.

Poznámka: Jestli obdržíte chybovou hlášku a ssh vám neumožní se připojit, přemístěte se do vašeho $HOME hledejte skrytý adresář nazvaný .ssh a smažtě soubor, který se jmenuje known_hosts. Pak to zkuste znova. Tahle chyba může nastat, jen pokud máte nastavenou dynamicky přidělovanou IP adresu (DCHP).

Používání X Aplikací přes síť skrze SSH

ssh -X vám umožní se přihlásit na vzdálený počítač a zobrazit jeho X grafické prostředí na vašem lokálním počítači. Jakožto $user (povšimněte si, že X musí být velkým písmem!):

$ ssh -X uživatelské_jméno@xxx.xxx.xxx.xxx (nebo IP)

Zadejte heslo pro uživatelské jméno na vzdáleném počítači a spusťte X-aplikaci v příkazové řádce :

$ iceweasel NEBO oocalc NEBO oowriter NEBO kspread

Velice pomalé síťové připojení z vašeho počítače by mohlo težit z určité úrovně komprese, aby se přenos poněkud urychlil. Přidejte tudíž další volbu. Na rychlých připojení to má ale opačný účinek:

$  ssh -C -X uživatelské_jméno@xxx.xxx.xxx.xxx (nebo IP)

Přečtěte si:

$man ssh

Poznámka: Jestli obdržíte chybovou hlášku a ssh vám neumožní se připojit, přemístěte se do vašeho $HOME hledejte skrytý adresář nazvaný .ssh a smažtě soubor, který se jmenuje known_hosts. Pak to zkuste znova. Tahle chyba může nastat, jen pokud máte nastavenou dynamicky přidělovanou IP adresu (DCHP).

Kopírování souborů a adresářu vzdáleně přes ssh pomocí scp

scp využívá příkazovuo řádku (terminál/cli) ke kopírování souborů mezi hostiteli na siti. Využívá ověření a zabezpečení ssh pro přenos data, takže vás scp vždy požádá o heslo tak, jak to ověření vyžaduje.

Předpokládaje, že máte oprávnění ssh na vzdáleném počítači nebo serveru, scp vám umožní kopírat diskové oddíly, soubory a adresáře na i z příslušného PC do specifického umístění vaší volby, kde taktéž máte oprávnění. Například to může zahrnovat počítač nebo server na vaší síti LAN, kde máte příslušná oprávnění (nebo kdekoliv jinde na světe), a následné zkopírování dat odtud na USB disk připojený k vašemu počítači.

Můžte rekurzivně kopírovat celé diskové oddíly a adresáře s volbou scp -r. Povšimněte si, že scp -r sleduje symbolické odkazy, které v soubourové hierarchii potká..

Příklady:

Příklad 1: Kopírování diskového oddílu:

scp -r <uživatel>@xxx.xxx.x.xxx:/media/disk1part6/ /media/diskXpartX/

Příklad 2: Kopírování adresáře na diskovém oddílu. V tomto případě adresář nazvaný fotky v $HOME:

scp -r <uživatel>@xxx.xxx.x.xxx:~/fotky/ /media/diskXpartX/xx

Příklad 3: Kopírování souboru z adresáře na diskovém oddílu. V tomto případě soubor v $HOME:

scp <uživatel>@xxx.xxx.x.xxx:~/název_souboru.txt /media/diskXpartX/xx

Příklad 4: Kopie souboru na diskovém oddílu:

scp <uživatel>@xxx.xxx.x.xxx:/media/disk1part6/název_souboru.txt /media/diskXpartX/xx

Příklad 5: Pokud se již nacházíte na disku (v adresáři), kam si přejete nějáký soubor nebo adresář zkopírovat, tak použijte ' . ' (tečku) :

scp -r <uživatel>@xxx.xxx.x.xxx:/media/disk1part6/název_souboru.txt . 

Příklad 6: Pro zkopírování souborů z vašeho PC/serveru na jiné/ý, (použijte scp -r pokud kopírujete diskový oddíl nebo adresář):

scp /media/disk1part6/název_souboru.txt <uživatel>@xxx.xxx.x.xxx:/media/diskXpartX/xx

Přečtěte si:

man scp

Vzdálený přístup pomocí ssh s přeposíláním X z PC s Windows:

* Stáhněte si a vypalte Cygwin XLiveCD
* Dejte disk do cd mechaniky vašeho PC s Windows a počkteje, až se samo spustí.
Klikejte na "pokračovat", dokud se neobjeví příkazová řádka a pak zadejte:

ssh -X uživatelské_jméno@xxx.xxx.xxx.xxx

Poznámka: xxx.xxx.xxx.xxx je IP adresa vašeho vzdáleného počítače s Linuxem nebo jeho URL adresa (například účet dyndns.org) a uživatelké_jméno je samozřejmě váš uživatelský účet, který existuje na vzádleném počítači. Po úspěšném přihlášení spusťte například "kmail" a zkontrolujte si třeba emaily!

Důležité: ujistěte se, že hosts.allow obsahují zmínku o umožnění přístupu z ostatních počítačů v dané síti. Pokud jste za NAT-Firewalllem nebo routerem, ujistěte se, že je port 22 přesměrováván na váš linuxový počítač.

SSH pomoKonqueror

Konqueror i Krusader jsou schopni prohlížet vzdálená data, pomocí sftp://, a oba používají protokol ssh.

Jak to funguje:
1) Otevřete okno Konqueroru
2) Do adresní řádky zadejte: sftp://uživatelské_jméno@ssh-server.com

Příklad 1:

sftp://aptosid1@vzdálený_název_pc_nebo_ip
(Poznámka: Otevře se vyskakovací okno, které vás požádá o vaše heslo ssh, zadejte ho a klikněte na OK)

Příklad 2:

sftp://uživatelské_jméno:heslo@vzdálený_název_pc_nebo_ip

(Touto formou NEUVIDÍTE vyskakovací okno požadující heslo, ale hned se připojíte.)

Pro rozhraní LAN

sftp://uživatelské_jméno@10.x.x.x or 198.x.x.x.x
(Poznámka: Otevře se vyskakovací okno požadující heslo ssh, zadejte ho a potvrďte OK)

Nyní je spuštěno grafické rozhraní SSH Konqueroru. V tomto oknu Konqueroru můžete pracovat se soubory (kopírovat/prohlížet), které se nachází na serveru SSH, tak, jako by byly v adresáři někde na vašem lokálním počítači.

POZNÁMKA: Pokud jste nastavili, aby vaše ssh používalo jiný port, jiný než je základní 22, musíte to specifikovat zadáním:

sftp://uživatel@ip:port

'uživatelr@ip:port' je standardní syntaxe pro spoustu programů jako je sftp nebo smb.

SSHFS - Vzdálené Připojení

SSFS je lehký, rychlý a bezpečný způsob, který využívá FUSE k připojení vzdáleného souborového systému. Jediný požadavek na straně serveru je běžící démon ssh.

Na straně klienta bude pravděpodobně potřeba nainstalovat sshfs: instalace fuse a groups není nutná v aptosidu, neboť je to zde již v základu nainstalováno:

Na straně klienta musíte pravděpodobně nainstalovat sshfs:

apt-get update && apt-get install sshfs

Nyní se musíte odhlásit a zase přihlásit.

Připojení vzádeleného souborového systému je opravdu jednoduché:

sshfs uzivatelske_jmeno@nazev_vzdalenoho_pocitace:adresar mistni_pripojny_bod

kde uzivatelske_jmeno je nazev vaseho uctu na vzdalenem pocitaci:

Jestli není specifikován žádný adresář, tak bude připojena domovská složka vzdáleného uživatele. Pozor: Dvojtečka : je nezbytná, i když není specifikován adresář!

Po připojení vzdáleného adresáře se bude chovat úplně jako by se jednalo o místní. Můžete soubory procházet, upravovat je a spouště v nich skripty, tak, jak byste to dělali na vašem místním systému.

Jestliže chcete odpojit vzdálený počítač, použijte následující příkaz:

fusermount -u mistni_pripojny_bod

Pokud často používate sshfs, bylo by výhodné přidat řádek do souboru fstba :

sshfs#username@remote_hostname://remote_directory /local_mount_point fuse user,allow_other,uid=1000,gid=1000,noauto,fsname=sshfs#username@remote_hostname://remote_directory  0 0 

Next uncomment user_allow_other in /etc/fuse.conf:

 
 # Allow non-root users to specify the 'allow_other' or 'allow_root'
 # mount options.
 #
 user_allow_other

To umožní každému uživateli, který je součásti skupiny fuse, aby připojil souborový systém pomocí známého příkazu mount:

mount /cesta/k/pripojnemu/bodu

S příslušným řádkem v fstab můžete samozřejmě také použít příkaz umount:

umount /cesta/k/pripojnemu/bodu

Pro kontrolu, jestli se ve zmiňované skupině opravdu nacházíte, zadejte následující příkaz:

cat /etc/group | grep fuse

Měli byste spatřit něco jako:

fuse:x:117: <uzivatelske_jmeno>

Jestli není vaše uživatelské jméno zobrazeno, tak použijte příkaz adduser jako root:

adduser <uzivatelske_jmeno> fuse

Nyní by mělo být vaše jméno v seznamu a také by vám mělo být umožněno spustit následující příkaz:

Poznámka: "Id" nebude ve skupině "fuse" zobrazeno, dokud se neodhlásíte a nepřihlásíte zase zpět.

mount mistni_pripojny_bod

a

umount mistni_pripojny_bod
Obsah naposled revidován 01/11/2011 0650 UTC