SSH

fordítás(ok): Deutsch – English – Fran Xhamais – Italiano – Espa ons – Portuguese ons

ToDo: merge (és lefordítani) ez az oldal és a francia egy (teljesebb)

Bevezetés

SSH jelentése Secure Shell és egy protokoll a biztonságos távoli bejelentkezés és más biztonságos hálózati szolgáltatások egy bizonytalan HÁLÓZAT1. Lásd Wikipedia-Secure Shell általánosabb információkat és ssh, lsh-client vagy dropbear az SSH szoftver implementációk közül OpenSSH a legnépszerűbb és legszélesebb körben használt2. SSH helyettesíti a titkosítatlan telnet, rlogin és rsh és hozzáteszi, sok funkcióval.

ebben a dokumentumban az OpenSSH parancscsomagot fogjuk használni, azt is feltételezzük, hogy a következő két változó van meghatározva:

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

tehát, ha az alábbi recepteket szeretné használni, először állítsa be ezeket a változókat a távoli számítógép nevére és a távoli számítógép felhasználónevére. Ezután vágja be az alábbi parancsokat kell működnie. remote_host is lehet egy IP-címet.

telepítés

az ügyfél telepítése

általában az ügyfél alapértelmezés szerint telepítve van. Ha nem elég, hogy fut a root:

apt install openssh-client

a szerver telepítése

a szerver lehetővé teszi a távoli csatlakozást, és rootként fut:

apt install openssh-server

konfigurációs fájlok

a fő konfigurációs fájlok az /etc/ssh könyvtárban találhatók:

  • ssh_config: ügyfél konfigurációs fájl

  • sshd_config: szerver konfigurációs fájl

Ezenkívül ez a könyvtár tartalmazza a gazdagépet azonosító privát/nyilvános kulcspárokat :

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

az OpenSSH 5.73 óta új privát/nyilvános kulcspár áll rendelkezésre:

  • ssh_host_ecdsa_key
  • ssh_host_ecdsa_key.pub

az OpenSSH 6.54 óta új privát/nyilvános kulcspár áll rendelkezésre:

  • ssh_host_ed25519_key
  • ssh_host_ed25519_key.pub

gazdagép kulcsok regenerálása

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

távoli bejelentkezés

jelszóval

ha be szeretne jelentkezni a $remote_hostba felhasználóként $remote_user egyszerűen írja be a

ssh $remote_user@$remote_host

majd írja be a jelszavát.

ha a helyi és a távoli számítógépen lévő felhasználónevek azonosak, akkor a $remote_user@-részt egyszerűen írhatja

ssh $remote_host

ha először jelentkezik be a távoli számítógépre, az ssh megkérdezi, hogy biztosan szeretne-e csatlakozni a távoli számítógéphez. Válasz ‘igen’ miután ellenőrizte a távoli számítógép ujjlenyomatát, írja be a jelszavát, és az ssh összekapcsolja Önt a távoli géppel.

megosztott kulcsok használata

az ssh egyik funkciója egy pár privát/nyilvános kulcs használata a távoli gazdagéphez való csatlakozáshoz. SSH kulcsként is ismert. Ez a módszer lehetővé teszi, hogy bejelentkezzen egy távoli gazdagépbe anélkül, hogy minden alkalommal beírná a jelszavát. Ehhez létre kell hoznia egy pár privát/nyilvános kulcsot a helyi gépen, és be kell helyeznie a nyilvános kulcsot a távoli gazdagépre.

a kulcs létrehozásához használja az ssh-keygen programot az alábbiak szerint

ssh-keygen -t rsa

ez a program létrehoz egy pár privát/nyilvános kulcsot a ~/könyvtárban.ssh. A program először a kulcsok célfájljait kéri, alapértelmezés szerint a~/.ssh. Ezután jelszót kérnek.

Megjegyzés: javasoljuk, hogy ne hagyja üresen a jelszót. Az a támadó, aki megszerzi a privát kulcsát, egyébként csatlakozhat azokhoz a gazdagépekhez, ahol a nyilvános kulcsot letétbe helyezte, mivel a jelszó üres. Válasszon egy hosszú és összetett jelszót.

a privát kulcsod id_rsa (ne add oda másnak), a nyilvános kulcsod id_rsa.pub.

a nyilvános kulcsot egy távoli gépre másolja az ssh-copy-id

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

paranccsal, most már egyszerűen csatlakozhat a távoli géphez, és a jelszót kéri. Miután elkészült, csatlakozik a távoli gazdagéphez. Új kapcsolat esetén a jelszót nem kérik újra a teljes munkamenet során.

Keys management

GUI használata

opcionálisan a seahorse egy GNOME alkalmazás, amely könnyen kezelheti a titkosítási kulcsokat és jelszavakat egy intuitív grafikus felhasználói felületen (GUI) keresztül. A Seahorse különféle műveleteket képes elvégezni. Például SSH vagy PGP kulcsok létrehozása, konfigurálása és gyorsítótárazása. Olvass tovább.

biztonság

SSH szerver

alapértelmezés szerint az SSH szerver viszonylag biztonságos. Néhány jó gyakorlat, konfigurációs lehetőség és külső segédprogram segítségével még nehezebbé tehető a ‘robotok’ és a crackerek számára

jó gyakorlatok SSH szerverrel

  • /!\ alkalmazza az openssh-server biztonsági frissítéseit a lehető leghamarabb. Amely lehetővé teszi az ismert biztonsági lyukak elleni védelmet.

  • aktiválja az SSH kulcsok hitelesítését csak jelszavakkal / jelmondatokkal. Deaktiválja a csak jelszó hitelesítést.

  • fontolja meg a fail2ban használatát, amely egy naplófájl-figyelő, amely automatikusan letiltja az IP-címet egy előre meghatározott számú sikertelen bejelentkezési kísérlet után. Amely automatikusan véd a brute-force támadások ellen.

  • további jó gyakorlatok az ssh at használatáhozhttps://lackof.org/taggart/hacking/ssh/

konfigurációs beállítások

(!) az /etc/ssh/sshd_config fájlt kell szerkeszteni a paraméterek megváltoztatásához, majd újraindítani az ssh szervert

service ssh restart
  • deaktiválja a jelszavakat a hitelesítéshez (PasswordAuthentication no).

  • deaktiválja a root fiókot (PermitRootLogin no).

  • csak bizonyos felhasználók vagy csoportok (AllowUsers and AllowGroups) engedélyezhetik a bejelentkezést)

{i} az AllowUsers és AllowGroups opciók nem javítják az SSH-kiszolgáló biztonságát. De bizonyos esetekben használatuk lehetővé teszi, hogy egy kicsit hosszabb ideig ellenálljon a nyers erő támadásának.

külső segédprogramok

  • fail2ban: lehetővé teszi, hogy automatikusan feketelistára IPs próbál brute force SSH szerver segítségével iptables.

  • denyhosts : mivel fail2ban, denyhosts lehetővé teszi, hogy blokkolja az IP-címeket próbál brute kényszeríteni a kapcsolatot ssh. De ellentétben fail2ban nem használja iptables, de a fájl / etc / hosts.tagadni.

SSH kliens

jó gyakorlatok SSH klienssel

  • /!\ alkalmazza az openssh-client biztonsági frissítéseit a lehető leghamarabb. Amely lehetővé teszi az ismert biztonsági lyukak elleni védelmet.

  • használja az SSH kulcsok hitelesítését. Jelszó hitelesítés helyett.

  • adjon hozzá erős jelszavakat/jelszavakat az SSH kulcsokhoz. Ez csökkenti a brute-force támadások kockázatát.

további funkciók

fájlok megtekintése GUI-ban

az olyan fájlkezelőkben, mint a Konqueror, a Dolphin, a Krusader és a Midnight Commander, a fish segítségével megtekintheti a GUI-ban lévő fájlokat:

fish://username@server_name_or_ip

További parancsok

scp

az scp egy parancssori segédprogram, amely lehetővé teszi fájlok átvitelét két gép között.

  • fájl küldése:
scp $source_file $remote_user@$remote_host:$destination_file
  • fájl másolása a helyi gépre:
scp $remote_user@$remote_host:$source_file $destination_file

sftp

Szöveges mód

grafikus mód

fürtöksh

ssh-agent és ssh-add

az ssh-agent hasznos segédprogram a privát kulcsok és jelszavaik kezeléséhez. A Debian legtöbb asztali környezete már be van állítva az ssh-agent futtatására (a systemd user services vagy az /etc/X11/Xsession segítségével), ezért nem kell manuálisan indítania.

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

továbbra is meg kell mondania az ügynöknek, hogy kezelje a kulcsokat.

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

amikor először van szükség egy privát kulcsra, a rendszer kéri annak jelmondatát. az ssh-agent ezután emlékezni fog a kulcsra, hogy a jelmondatod ne legyen többé megkérdezve.

kulcstartó

a kulcstartó, amelyet a csomag biztosít kulcstartó, egy shell szkript, amely lehetővé teszi az ssh ügynök használatát ugyanazon számítógép több munkamenetében. Valójában az első indítás után az ssh-agent létrehoz egy állandó aljzatot, amely lehetővé teszi az ssh-val való kommunikációt. Erre az aljzatra csak annak a munkamenetnek a környezetében hivatkoznak, amelyben az ügynök elindult. A kulcstartó lehetővé teszi az ügynök észlelését és az ügynökhöz való hozzáférést más munkamenetekhez; ez lehetővé teszi az ssh-agent egyetlen példányának használatát felhasználónként egy gépen.

ssh-askpass

ssh-askpass egy segédprogram, hogy egyszerűen a kérdés a jelszót egy privát kulcs használatakor. Számos megvalósítás létezik:

  • x11-ssh-askpass: verzió az X11-hez

  • kaskpass: ssh-askpass integrálása a KDE környezetbe

  • ssh-askpass-gnome : ssh-askpass integrálása a Gnome környezetbe

libpam-usb

a libpam-usb egy segédprogram (csak a Debian Jessie számára érhető el), amely lehetővé teszi az USB-meghajtóval történő hitelesítést. Ez a csomag tartalmaz egy hasznos utilty: pamusb-agent. Ez a segédprogram, miután helyesen konfigurálta, lehetővé teszi az USB-meghajtón található SSH-kulcsok betöltését, miután csatlakoztatta, majd leválasztotta őket.

távoli parancsok

ha csak egy parancsot szeretne futtatni a távoli számítógépen, akkor nem kell bejelentkeznie. Megmondhatja az ssh-nak, hogy futtassa a parancsot bejelentkezés nélkül, például,

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

felsorolja az összes kiterjesztésű fájlt .txt a távoli számítógépen. Ez egyetlen kullancsos idézetekkel működik…”amint itt látható, dupla kullancsos idézetekkel”…”, idézőjelek nélkül. E három eset között különbségek lehetnek, bár, itt még nem dokumentálták.

SSH a Debian-ba egy másik operációs rendszerből

  • PuTTY egy terminál emulátor alkalmazás, amely működhet, mint egy kliens ssh. Széles körben használják a Windows felhasználók.

  • Wikipedia has Comparison_of_SSH_clients

az SSH használatának jó gyakorlata

ezt el kell olvasnia: https://lackof.org/taggart/hacking/ssh/

ez a dokumentum számos jó gyakorlatot foglal össze, amelyeket a rendszeres SSH-felhasználóknak követniük kell annak érdekében, hogy elkerüljék fiókjaik (és az egész gép biztonságának egyidejű veszélyeztetését).

állítsa be a~/.ssh / config küldeni csak a megfelelő gombot.

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

hibaelhárítás

az OpenSSL verziójának eltérése. Az 1000105f ellen épített 10001060

ha ilyen hibaüzenetet kap az ssh démon indításakor, akkor futtatnia kell:

apt install openssh-server openssh-client

Lásd még: bug # 732940.

az SSH lefagy

kiadás

az SSH-t távoli számítógépbe próbálja meg. De közben SSH log-in a munkamenet lefagy / lefagy a végtelenségig. Így nem jelenik meg a parancssor. Nem használhat semmilyen SSH parancsot : ( SSH hibakeresési mód használatakor a munkamenet ezen a vonalon lóg debug2: 0 csatorna: open confirm rwindow 0 Rmax 32768

lehetséges ok

egyes útválasztóknál a NAT mögött és az OpenSSH használatakor. A munkamenet beállítása során a jelszó megadása után az OpenSSH beállítja a TOS (szolgáltatás típusa) mezőt az IP datagramban. A router megfullad ezen. A hatás az, hogy az SSH munkamenet határozatlan ideig lóg. Más szavakkal, az SSH parancsok vagy kapcsolatok ritkán működnek, vagy egyáltalán nem működnek.

felbontás IPQoS 0x00

esetén, Amíg az útválasztó gyártója meg nem javítja a firmware-t. Itt van egy lehetőség a probléma megoldására:

  1. ellenőrizze még egyszer, hogy az openssh-server és az openssh-client verziója 5.7 vagy újabb. Például az alábbi felbontásnak működnie kell a Debian 7.11 Wheezy vagy újabb verzióval, mivel az OpenSSH 6.0 verzióhoz tartozik.

  2. szerkessze az alábbi két fájl egyikét:

    ~/.ssh/config

    vagy

    /etc/ssh/ssh_config

    Megjegyzés: A konfigurációs fájl felhasználónként, az ssh_config fájl pedig minden felhasználó és rendszerszintű. Ha nem biztos benne, szerkessze a megfelelő felhasználói konfigurációs fájlt.

    fájl tartalma előtt

    Host *

    fájl tartalma után

    Host * IPQoS 0x00
  3. ha bármilyen terminál / konzol ablak(OK) már nyitva. Teljesen zárja be mindet. Ezzel lezárja az aktív SSH munkameneteket.
  4. nem kell újraindítani az OpenSSH-t vagy a Debian-t. Próbálja újra SSH bármely távoli szerverre. Működnie kell. Kész sikeresen megoldotta ezt a problémát :)

    köszönet Joe-nak és catmaker-nek a tippért :)

    kapcsolódó dokumentáció https://www.openssh.com/txt/release-5.7

felbontás a netcat segítségével

/!\ figyelem: javasoljuk, hogy a netcat/ProxyCommand nc %h %p opció helyett fontolja meg a másik felbontás IPQoS 0x00 használatával történő használatát. Mivel az IPQoS 0x00 a hivatalos beépített OpenSSH opció. Szintén IPQoS 0x00 egy közvetlenebb módja annak, hogy megoldja ezt a problémát, és potenciálisan biztonságosabb lehetőség. Mivel az IPQoS 0x00 SSH beépített titkosítását használja a biztonságos átvitelhez. Hasonlítsa össze a netcat nem titkosított átvitelével. Források: 1 2. Ha úgy dönt, hogy a netcat/ProxyCommand nc % h % p opciót használja, olvassa el.

egy másik lehetőség az SSH lefagyásának megoldására a ProxyCommand nc %h %p használata. Ehhez kövesse ugyanazokat a lépéseket, mint a fenti felbontás IPQoS 0x00 esetén. De cserélje ki az IPQoS 0x00-at

ProxyCommand nc %h %p

tartsa életben az SSH-kapcsolatot

biztonsági okokból alapértelmezés szerint az SSH-kapcsolat automatikusan bezáródik egy meghatározott idő elteltével. De bizonyos esetekben meg akarja tartani ezt a kapcsolatot. Ilyen például a felhőalapú tárolás SSH kapcsolaton keresztül.

/!\ figyelmeztetés: Az SSH kapcsolat életben tartása opció aktiválása előtt. Javasoljuk, hogy fontolja meg mind az SSH kliens, mind az SSH szerver biztonságát. Mert például fennáll annak a veszélye, hogy ha a felhasználók nyitva hagyják az SSH-munkamenetüket, számítógépüket pedig felügyelet nélkül és zárolva hagyják. Bárki megközelítheti azt a számítógépet, majd kihasználhatja a nyitott SSH kapcsolatot. Például a passwd parancs használatával módosítsa a jelszót. Így hozzáférhet a szerverhez. Más szavakkal, az SSH kapcsolat életben tartása opció aktiválása előtt javasoljuk, hogy használja a legjobb megítélését és a jó biztonsági gyakorlatokat.

A Debian 7 Esetében.x server

lépések az SSH kapcsolat életben tartásához.

az SSH szerveren szerkessze az /etc/ssh/sshd_config fájlt, majd adja hozzá a következő fájlt a fájl aljára.

# 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

root felhasználóként indítsa újra az SSH szolgáltatást:

service sshd restart

kérjük, vegye figyelembe, hogy a legutóbbi Debian rendszereken(pl. 2015), a fenti parancs már nem működik, és visszaadja a hibát:

sudo service sshd restartsshd: unrecognized service

a következő munkák azonban:

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

Lásd még

  • képernyő-terminál multiplexer VT100 / ANSI terminál emulációval

  • tmux-alternatív terminál multiplexer

Kategóriahálózati Kategóriaszoftver

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.