- bookworm-backports 4.26.3.1-3~bpo12+1
- testing 4.26.3.1-3
- unstable 4.26.3.1-3
SSHD(8) | System Manager's Manual | SSHD(8) |
NUME¶
sshd
— Demonul
OpenSSH
SINOPSIS¶
sshd
[-46DdeGiqTtV
]
[-C
specificare-conectare]
[-c
fișier-certificat-gazdă]
[-E
fișier-jurnal]
[-f
fișier-configurare]
[-g
timp-de-grație-autentificare]
[-h
fișier-cheie-gazdă]
[-o
opțiune]
[-p
port]
[-u
lungime]
DESCRIERE¶
sshd
(Demonul OpenSSH) este programul
demon pentru ssh(1). Acesta oferă
comunicații criptate sigure între două gazde
„neîncrezătoare” printr-o rețea
nesigură.
sshd
ascultă conexiunile de la
clienți. În mod normal, este inițiat la pornire din
/etc/init.d/ssh. Acesta creează un nou demon
pentru fiecare conexiune primită. Demonii bifurcați
gestionează schimbul de chei, criptarea, autentificarea, executarea
comenzilor și schimbul de date.
sshd
poate fi configurat folosind
opțiuni din linia de comandă sau un fișier de
configurare (implicit sshd_config(5)); opțiunile
din linia de comandă prevalează asupra valorilor specificate
în fișierul de configurare. sshd
își recitește fișierul de configurare atunci
când primește un semnal de întrerupere,
SIGHUP
, executându-se cu numele și
opțiunile cu care a fost pornit, de exemplu
/usr/sbin/sshd.
Opțiunile sunt următoarele:
-4
- Forțează
sshd
să utilizeze numai adrese IPv4. -6
- Forțează
sshd
să utilizeze numai adrese IPv6. -C
specificare-conectare- Specifică parametrii de conectare care urmează să fie
utilizați pentru modul de testare extinsă
-T
. Dacă sunt furnizate, orice directiveMatch
din fișierul de configurare care s-ar aplica sunt aplicate înainte ca configurația să fie scrisă la ieșirea standard. Parametrii conexiunii sunt furnizați ca perechi cuvânt cheie=valoare și pot fi furnizați în orice ordine, fie cu mai multe opțiuni-C
, fie ca o listă separată prin virgule. Cuvintele-cheie sunt “addr”, “user”, “host”, “laddr”, “lport” și “rdomain” și corespund adresei sursă, utilizatorului, numelui gazdei sursă rezolvate, adresei locale, numărului portului local și, respectiv, domeniului de rutare. În plus, fanionul “invalid-user” (care nu are un argument de valoare) poate fi specificat pentru a simula o conexiune de la un nume de utilizator nerecunoscut. -c
fișier-certificat-gazdă- Specifică o rută către un fișier de certificat
pentru a identifica
sshd
în timpul schimbului de chei. Fișierul de certificat trebuie să corespundă unui fișier de cheie gazdă specificat cu ajutorul opțiunii-h
sau al directivei de configurareHostKey
. -D
- Când este specificată această opțiune,
sshd
nu se va detașa și nu va deveni un demon. Acest lucru permite monitorizarea ușoară asshd
. -d
- Modul de depanare. Serverul trimite ieșirea de depanare
detaliată la ieșirea de eroare standard și nu se pune
în fundal. De asemenea, serverul nu va executa
fork(2) și va procesa o singură conexiune.
Această opțiune este destinată numai pentru depanare
pentru server. Opțiunile multiple
-d
măresc nivelul de depanare. Maximul este 3. -E
fișier-jurnal- Adaugă jurnalele de depanare la fișierul- jurnal în loc de jurnalul de sistem.
-e
- Scrie jurnalele de depanare la ieșirea din eroare standard în loc de jurnalul de sistem.
-f
fișier-configurare- Specifică numele fișierului de configurare. Valoarea
implicită este /etc/ssh/sshd_config.
sshd
refuză să pornească dacă nu există niciun fișier de configurare. -G
- Analizează și imprimă fișierul de configurare.
Verifică validitatea fișierului de configurare, emite
configurația efectivă la ieșirea standard și
apoi iese. Opțional, regulile
Match
pot fi aplicate prin specificarea parametrilor de conexiune folosind una sau mai multe opțiuni-C
. -g
timp-de-grație-autentificare- Acordă timp de grație clienților pentru a se autentifica (implicit 120 de secunde). Dacă clientul nu reușește să autentifice utilizatorul în acest număr de secunde, serverul se deconectează și iese. O valoare de zero indică lipsa unei limite.
-h
fișier-cheie-gazdă- Specifică un fișier din care este citită o cheie de
gazdă. Această opțiune trebuie furnizată
dacă
sshd
nu este rulat ca root (deoarece fișierele de chei de gazdă normale nu pot fi citite decât de root). Valoarea implicită este /etc/ssh/ssh_host_ecdsa_key, /etc/ssh/ssh_host_ed25519_key și /etc/ssh/ssh_host_rsa_key. Este posibil să aveți mai multe fișiere de chei de gazdă pentru diferiți algoritmi de chei de gazdă. -i
- Specifică faptul că
sshd
este rulat din inetd(8). -o
opțiune- Poate fi utilizată pentru a oferi opțiuni în formatul utilizat în fișierul de configurare. Acest lucru este util pentru specificarea opțiunilor pentru care nu există un indicator de linie de comandă separat. Pentru detalii complete privind opțiunile și valorile acestora, consultați sshd_config(5).
-p
port- Specifică portul pe care serverul ascultă conexiunile
(implicit 22). Sunt permise mai multe opțiuni de port. Porturile
specificate în fișierul de configurare cu opțiunea
Port
sunt ignorate atunci când este specificat un port în linia de comandă. Porturile specificate cu ajutorul opțiuniiListenAddress
prevalează asupra porturilor din linia de comandă. -q
- Modul silențios. Nimic nu este trimis în jurnalul de sistem. În mod normal, începutul, autentificarea și încheierea fiecărei conexiuni sunt înregistrate.
-T
- Modul de testare extinsă. Verifică validitatea
fișierului de configurare, emite configurația
efectivă la ieșirea standard și apoi iese.
Opțional, regulile
Match
pot fi aplicate prin specificarea parametrilor conexiunii folosind una sau mai multe opțiuni-C
. Aceasta este similară cu opțiunea-G
, dar include testarea suplimentară efectuată de opțiunea-t
. -t
- Modul de testare. Verifică doar validitatea fișierului de
configurare și corectitudinea cheilor. Acest lucru este util pentru
actualizarea fiabilă a
sshd
, deoarece opțiunile de configurare se pot schimba. -u
lungime- Această opțiune este utilizată pentru a specifica
dimensiunea câmpului din structura utmp care
conține numele gazdei la distanță. Dacă numele
de gazdă rezolvat este mai lung decât
len, se va utiliza în schimb valoarea
zecimală punctată.(XXX.XXX.XXX.XXX) Acest lucru permite
gazdelor cu nume de gazdă foarte lungi care depășesc
acest câmp să fie totuși identificate în mod
unic. Specificarea
-u0
indică faptul că în fișierul utmp ar trebui introduse numai adrese zecimale punctate.-u0
poate fi utilizat și pentru a împiedicasshd
să efectueze cereri DNS, cu excepția cazului în care mecanismul de autentificare sau configurația o solicită. Mecanismele de autentificare care pot necesita DNS includHostbasedAuthentication
și utilizarea unei opțiunifrom="listă-modele"
într-un fișier cheie. Opțiunile de configurare care necesită DNS includ utilizarea unui model UTILIZATOR@GAZDĂ înAllowUsers
sauDenyUsers
. -V
- Afișează numărul versiunii, și iese.
AUTENTIFICARE¶
Demonul SSH OpenSSH acceptă numai protocolul SSH 2. Fiecare gazdă are o cheie specifică gazdei, utilizată pentru identificarea gazdei. Ori de câte ori un client se conectează, demonul răspunde cu cheia sa publică de gazdă. Clientul compară cheia gazdei cu propria sa bază de date pentru a verifica dacă aceasta nu s-a modificat. Secretul de transmitere este asigurat prin intermediul unui acord de chei Diffie-Hellman. Acest acord de chei are ca rezultat o cheie de sesiune partajată. Restul sesiunii este criptat utilizând un cifru simetric. Clientul selectează algoritmul de criptare de utilizat dintre cele oferite de server. În plus, integritatea sesiunii este asigurată printr-un cod criptografic de autentificare a mesajului („Message Authentication Code”: MAC).
În final, serverul și clientul intră într-un dialog de autentificare. Clientul încearcă să se autentifice folosind autentificarea bazată pe gazdă, autentificarea prin cheie publică, autentificarea prin provocare-răspuns sau autentificarea prin parolă.
Indiferent de tipul de autentificare, contul este verificat pentru
a se asigura că este accesibil. Un cont nu este accesibil dacă
este blocat, listat în DenyUsers
sau grupul
său este listat în DenyGroups
.
Definiția unui cont blocat depinde de sistem. Unele platforme au
propria bază de date a conturilor (de exemplu AIX), iar altele
modifică câmpul passwd (
‘*LK*
’ pe Solaris și UnixWare,
‘*
’ pe HP-UX, conținând
‘Nologin
’ pe Tru64, un
‘*LOCKED*
’ pe FreeBSD și un
‘!
’ pe majoritatea Linux-urilor).
Dacă există o cerință de a dezactiva
autentificarea prin parolă pentru cont, permițând
în același timp utilizarea cheii publice, atunci câmpul
passwd trebuie să fie definit la altceva decât aceste valori
(de exemplu ‘NP
’ sau
‘*NP*
’).
Dacă clientul se autentifică cu succes, se deschide un dialog pentru pregătirea sesiunii. În acest moment, clientul poate solicita lucruri precum alocarea unui pseudo-tty, redirecționarea conexiunilor X11, redirecționarea conexiunilor TCP sau redirecționarea conexiunii agentului de autentificare pe canalul securizat.
După aceasta, clientul solicită fie un shell
interactiv, fie executarea unei comenzi non-interactive, pe care
sshd
o va executa prin intermediul shell-ului
utilizatorului folosind opțiunea -c
. Cele
două părți intră apoi în modul sesiune.
În acest mod, fiecare parte poate trimite date în orice
moment, iar aceste date sunt transmise către/de la shell sau
comandă pe partea serverului și de la terminalul
utilizatorului pe partea clientului.
Atunci când programul utilizatorului se încheie și toate conexiunile X11 transmise și alte conexiuni au fost închise, serverul trimite starea de ieșire a comenzii către client și ambele părți ies.
PROCESUL DE AUTENTIFICARE¶
Atunci când un utilizator se autentifică cu succes,
sshd
face următoarele:
- Dacă autentificarea se face pe un tty și nu a fost specificată nicio comandă, imprimă ora ultimei autentificări și /etc/motd (cu excepția cazului în care este împiedicată în fișierul de configurare sau prin ~/.hushlogin; consultați secțiunea FILES).
- Dacă autentificarea se face pe un tty, înregistrează ora autentificării.
- Verifică /etc/nologin; dacă există, imprimă conținutul și iese (dacă utilizatorul nu este root).
- Modificări pentru a rula cu privilegii normale de utilizator.
- Definește un mediu bazic.
- Citește fișierul ~/.ssh/environment,
dacă există, iar utilizatorilor li se permite să
își schimbe mediul. Consultați opțiunea
PermitUserEnvironment
din sshd_config(5). - Se plasează în directorul personal al utilizatorului.
- Dacă ~/.ssh/rc există și
opțiunea sshd_config(5)
PermitUserRC
este definită, îl execută; altfel, dacă /etc/ssh/sshrc există, îl execută; altfel, execută xauth(1). Fișierele “rc” primesc protocolul de autentificare X11 și cookie-ul în intrarea standard. A se vedea SSHRC, mai jos. - Rulează shell-ul sau comanda utilizatorului. Toate comenzile sunt executate în shell-ul de conectare al utilizatorului, astfel cum este specificat în baza de date cu parole a sistemului.
SSHRC¶
Dacă fișierul ~/.ssh/rc
există, sh(1) îl execută după
citirea fișierelor de mediu, dar înainte de a porni shell-ul
sau comanda utilizatorului. Acesta nu trebuie să producă
niciun rezultat la ieșirea standard (stdout); în schimb,
trebuie utilizată ieșirea de erori standard (stderr).
Dacă este utilizată redirecționarea X11, acesta va
primi perechea „proto cookie” în intrarea sa standard
(și DISPLAY
în mediul său).
Scriptul trebuie să apeleze xauth(1) deoarece
sshd
nu va rula xauth automat pentru a adăuga
cookie-uri X11.
Scopul principal al acestui fișier este de a rula orice rutine de inițializare care pot fi necesare înainte ca directorul personal al utilizatorului să devină accesibil; AFS este un exemplu particular al unui astfel de mediu.
Acest fișier va conține probabil un cod de inițializare urmat de ceva similar cu:
if read proto cookie && [ -n "$DISPLAY" ]; then if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then # X11UseLocalhost=yes echo add unix:`echo $DISPLAY | cut -c11-` $proto $cookie else # X11UseLocalhost=no echo add $DISPLAY $proto $cookie fi | xauth -q - fi
Dacă acest fișier nu există, se execută /etc/ssh/sshrc, iar dacă nici acesta nu există, se utilizează xauth pentru a adăuga cookie-ul.
FORMATUL FIȘIERULUI AUTHORIZED_KEYS¶
AuthorizedKeysFile
specifică
fișierele care conțin cheile publice pentru autentificarea cu
cheie publică; dacă această opțiune nu este
specificată, valoarea implicită este
~/.ssh/authorized_keys și
~/.ssh/authorized_keys2. Fiecare linie a
fișierului conține o cheie (liniile goale și liniile
care încep cu un ‘#
’ sunt
ignorate ca comentarii). Cheile publice sunt formate din următoarele
câmpuri separate prin spații: opțiuni, tipul cheii,
cheia codificată în baza64, comentariu. Câmpul
opțiuni este opțional. Tipurile de chei acceptate sunt:
- sk-ecdsa-sha2-nistp256@openssh.com
- ecdsa-sha2-nistp256
- ecdsa-sha2-nistp384
- ecdsa-sha2-nistp521
- sk-ssh-ed25519@openssh.com
- ssh-ed25519
- ssh-rsa
Câmpul de comentarii nu este utilizat pentru nimic (dar poate fi convenabil pentru utilizator să identifice cheia).
Rețineți că liniile din acest fișier pot fi lungi de câteva sute de octeți (din cauza dimensiunii codificării cheii publice) până la o limită de 8 kiloocteți, ceea ce permite chei RSA de până la 16 kilobiți. Nu doriți să le introduceți; în schimb, copiați fișierul id_ecdsa.pub, id_ecdsa_sk.pub, id_ed25519.pub, id_ed25519_sk.pub sau id_rsa.pub și editați-l.
sshd
impune o dimensiune minimă a
modulului cheii RSA de 1024 biți.
Opțiunile (dacă sunt prezente) constau în specificații de opțiuni separate prin virgule. Nu sunt permise spațiile, cu excepția celor între ghilimele duble. Sunt acceptate următoarele specificații ale opțiunilor (a se observa că cuvintele cheie ale opțiunilor nu țin cont de majuscule și minuscule):
agent-forwarding
- Activează redirecționarea agentului de autentificare
dezactivată anterior de opțiunea
restrict
. - Specifică faptul că cheia listată este o autoritate
de certificare (CA) de încredere pentru validarea certificatelor
semnate pentru autentificarea utilizatorului.
Certificatele pot codifica restricții de acces similare cu aceste opțiuni ale cheii. În cazul în care sunt prezente atât restricții ale certificatului, cât și opțiuni ale cheii, se aplică cea mai restrictivă combinație dintre cele două.
command="comanda"
- Specifică faptul că comanda este executată ori de
câte ori această cheie este utilizată pentru
autentificare. Comanda furnizată de utilizator (dacă
există) este ignorată. Comanda este executată pe un
pty dacă clientul solicită un pty; în caz contrar,
este executată fără un tty. Dacă este necesar
un canal curat pe 8 biți, nu trebuie solicitat un pty sau trebuie
specificat
no-pty
. Un citat poate fi inclus în comandă prin citarea sa cu o bară inversă.Această opțiune poate fi utilă pentru a restricționa anumite chei publice pentru a efectua doar o anumită operație. Un exemplu ar putea fi o cheie care permite salvări de la distanță, dar nimic altceva. Rețineți că clientul poate specifica redirecționarea TCP și/sau X11, cu excepția cazului în care acestea sunt interzise în mod explicit, de exemplu folosind opțiunea de cheie
restrict
.Comanda furnizată inițial de client este disponibilă în variabila de mediu
SSH_ORIGINAL_COMMAND
. Rețineți că această opțiune se aplică executării shell-ului, comenzii sau subsistemului. De asemenea, rețineți că această comandă poate fi înlocuită de o directivă sshd_config(5)ForceCommand
.Dacă este specificată o comandă și o comandă forțată este încorporată într-un certificat utilizat pentru autentificare, atunci certificatul va fi acceptat numai dacă cele două comenzi sunt identice.
environment="NUME=valoare"
- Specifică faptul că șirul de caractere trebuie
adăugat mediului atunci când vă conectați
utilizând această cheie. Variabilele de mediu definite
în acest mod prevalează asupra altor valori de mediu
implicite. Sunt permise opțiuni multiple de acest tip. Procesarea
mediului este dezactivată în mod implicit și este
controlată prin intermediul opțiunii
PermitUserEnvironment
. expiry-time="specificare-timp"
- Specifică un interval de timp după care cheia nu va fi acceptată. Ora poate fi specificată ca o dată AAAALLZZ[Z] sau ca o oră AAAALLZZHHMM[SS][Z]. Datele și orele vor fi interpretate în fusul orar al sistemului, cu excepția cazului în care sunt sufixate de un caracter Z, caz în care vor fi interpretate în fusul orar UTC.
from="listă-modele"
- Specifică faptul că, pe lângă autentificarea
prin cheie publică, fie numele canonic al gazdei de la
distanță, fie adresa IP a acesteia trebuie să fie
prezente în lista de modele separate prin virgule.
Consultați MODELE în ssh_config(5) pentru
mai multe informații despre modele.
În plus față de potrivirea de tip caracter joker care poate fi aplicată numelor de gazdă sau adreselor, o secțiune
from
poate potrivi adresele IP utilizând notația CIDR adresă/masklen.Scopul acestei opțiuni este de a spori opțional securitatea: autentificarea cu cheie publică în sine nu are încredere în rețea sau în serverele de nume sau în nimic altceva (în afară de cheie); cu toate acestea, dacă cineva fură cumva cheia, cheia permite unui intrus să se conecteze de oriunde din lume. Această opțiune suplimentară face ca utilizarea unei chei furate să fie mai dificilă (serverele de nume și/sau router-ele ar trebui să fie compromise în plus față de cheie).
no-agent-forwarding
- Interzice redirecționarea agentului de autentificare atunci când această cheie este utilizată pentru autentificare.
no-port-forwarding
- Interzice redirecționarea TCP atunci când această
cheie este utilizată pentru autentificare. Orice solicitare de
redirecționare a portului de către client va returna o
eroare. Aceasta poate fi utilizată, de exemplu, în
combinație cu opțiunea
command
. no-pty
- Împiedică alocarea tty (o cerere de alocare a unui pty va eșua).
no-user-rc
- Dezactivează executarea ~/.ssh/rc.
no-X11-forwarding
- Interzice redirecționarea X11 atunci când această cheie este utilizată pentru autentificare. Orice solicitare de redirecționare X11 din partea clientului va returna o eroare.
permitlisten="[gazdă:]port"
- Limitează redirecționarea porturilor la
distanță cu opțiunea ssh(1)
-R
astfel încât să poată asculta numai pe gazda (opțional) și portul specificate. Adresele IPv6 pot fi specificate prin includerea adresei între paranteze drepte. Pot fi aplicate mai multe opțiunipermitlisten
separate prin virgule. Numele de gazdă pot include caractere joker, astfel cum sunt descrise în secțiunea MODELE din ssh_config(5). O specificație de port*
se potrivește oricărui port. Rețineți că opțiuneaGatewayPorts
poate restricționa și mai mult adresele de ascultare. Rețineți că ssh(1) va trimite un nume de gazdă “localhost” dacă nu a fost specificată o gazdă de ascultare atunci când a fost solicitată redirecționarea și că acest nume este tratat diferit față de adresele explicite de gazdă locală “127.0.0.1” și “::1”. permitopen="gazdă:port"
- Limitează redirecționarea porturilor locale cu
opțiunea ssh(1)
-L
astfel încât să se poată conecta numai la gazda și portul specificate. Adresele IPv6 pot fi specificate prin includerea adresei între paranteze drepte. Pot fi aplicate mai multe opțiunipermitopen
separate prin virgule. Nu se efectuează nicio potrivire de model sau căutare de nume pe numele de gazdă specificate, acestea trebuie să fie nume de gazdă și/sau adrese literale. O specificație de port*
se potrivește oricărui port. port-forwarding
- Activează redirecționarea porturilor dezactivată
anterior de opțiunea
restrict
. principals="principale"
- Pe o linie
cert-authority
, specifică principalii „principals” permise pentru autentificarea certificatului sub forma unei liste separate prin virgule. Cel puțin un nume din listă trebuie să apară în lista de principali a certificatului pentru ca certificatul să fie acceptat. Această opțiune este ignorată pentru cheile care nu sunt marcate ca semnatari de certificate de încredere utilizând opțiuneacert-authority
. pty
- Permite alocarea tty dezactivată anterior de opțiunea
restrict
. no-touch-required
- Nu solicită demonstrarea prezenței utilizatorului pentru
semnăturile realizate utilizând această cheie.
Această opțiune are sens numai pentru algoritmii de
autentificare FIDO
ecdsa-sk
șied25519-sk
. verify-required
- Solicită ca semnăturile realizate utilizând
această cheie să ateste că au verificat utilizatorul,
de exemplu prin intermediul unui cod PIN. Această opțiune
are sens numai pentru algoritmii de autentificare FIDO
ecdsa-sk
șied25519-sk
. restrict
- Activează toate restricțiile, adică dezactivează redirecționarea porturilor, agenților și X11, precum și dezactivarea alocării PTY și a executării ~/.ssh/rc. Dacă în viitor vor fi adăugate capacități de restricționare la fișierele authorized_keys, acestea vor fi incluse în acest set.
tunnel="n"
- Forțează un dispozitiv tun(4) pe server. Fără această opțiune, următorul dispozitiv disponibil va fi utilizat dacă clientul solicită un tunel.
user-rc
- Activează executarea ~/.ssh/rc
dezactivată anterior de opțiunea
restrict
. X11-forwarding
- Permite redirecționarea X11 dezactivată anterior de
opțiunea
restrict
.
Un exemplu de fișier authorized_keys:
# Comentariile sunt permise la începutul liniei. Sunt permise liniile goale. # Cheie simplă, fără restricții ssh-rsa ... # Comandă forțată, dezactivează PTY și toate redirecționările restrict,command="dump /home" ssh-rsa ... # Restricționarea destinațiilor de redirecționare ssh -L permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-rsa ... # Restricționarea ascultătorilor ssh -R forwarding permitlisten="localhost:8080",permitlisten="[::1]:22000" ssh-rsa ... # Configurație pentru redirecționarea prin tunel tunnel="0",command="sh /etc/netstart tun0" ssh-rsa ... # Anularea restricției pentru a permite alocarea PTY restrict,pty,command="nethack" ssh-rsa ... # Permite utilizarea cheii FIDO fără a fi necesară interacționarea cu utilizatorul no-touch-required sk-ecdsa-sha2-nistp256@openssh.com ... # Solicită verificarea utilizatorului (de exemplu, PIN sau biometric) # pentru cheia FIDO verify-required sk-ecdsa-sha2-nistp256@openssh.com ... # Cheie CA de încredere, permite FIDO fără interacționarea cu utilizatorul dacă # este solicitat în certificat cert-authority,no-touch-required,principals="user_a" ssh-rsa ...
FORMATUL FIȘIERULUI SSH_KNOWN_HOSTS¶
Fișierele /etc/ssh/ssh_known_hosts și ~/.ssh/known_hosts conțin cheile publice ale gazdelor pentru toate gazdele cunoscute. Fișierul global trebuie pregătit de administrator (opțional), iar fișierul per utilizator este menținut automat: ori de câte ori utilizatorul se conectează la o gazdă necunoscută, cheia acesteia este adăugată la fișierul per utilizator.
Fiecare linie din aceste fișiere conține următoarele câmpuri: marcaj (opțional), nume de gazdă, tip de cheie, cheie codificată în baza 64, comentariu. Câmpurile sunt separate prin spații.
Marcajul este opțional, dar dacă este prezent, atunci trebuie să fie unul dintre “@cert-authority”, pentru a indica faptul că linia conține o cheie de autoritate de certificare (CA), sau “@revoked”, pentru a indica faptul că cheia conținută pe linie este revocată și nu trebuie acceptată niciodată. Pe o linie de cheie trebuie utilizat un singur marcaj.
Numele de gazde este o listă de modele separate prin
virgule (‘*
’ și
‘?
’ acționează ca
jokeri); fiecare model în parte este comparat cu numele de
gazdă. Atunci când sshd
autentifică un client, cum ar fi atunci când utilizează
HostbasedAuthentication
, acesta va fi numele canonic
al gazdei clientului. Atunci când ssh(1)
autentifică un server, acesta va fi numele de gazdă dat de
utilizator, valoarea ssh(1)
HostkeyAlias
dacă a fost specificată,
sau numele de gazdă canonic al serverului dacă a fost
utilizată opțiunea ssh(1)
CanonicalizeHostname
.
Un model poate fi, de asemenea, precedat de
‘!
’ pentru a indica negarea:
dacă numele de gazdă se potrivește cu un model negat,
acesta nu este acceptat (de linia respectivă) chiar dacă se
potrivește cu un alt model de pe linie. Un nume de gazdă sau o
adresă poate fi inclusă opțional între
parantezele ‘[
’ și
‘]
’, urmate apoi de
‘:
’ și un număr de port
nestandard.
Alternativ, numele de gazde pot fi stocate într-o format de
sumă de control care ascunde numele de gazde și adresele
în cazul în care conținutul fișierului ar fi
divulgat. Numele de gazde în format de sumă de control
încep cu un caracter ‘|
’. Un
singur nume de gazdă în format de sumă de control poate
apărea pe o singură linie și nu poate fi aplicat
niciunul dintre operatorii de negare sau de caractere joker de mai sus.
Tipul de cheie și cheia codificată în baza64 sunt preluate direct din cheia gazdei; acestea pot fi obținute, de exemplu, din /etc/ssh/ssh_host_rsa_key.pub. Câmpul de comentariu opțional continuă până la sfârșitul liniei și nu este utilizat.
Liniile care încep cu
‘#
’ și liniile goale sunt
ignorate ca comentarii.
Atunci când se efectuează autentificarea gazdei, autentificarea este acceptată dacă orice linie corespunzătoare are cheia corespunzătoare; fie una care corespunde exact, fie, dacă serverul a prezentat un certificat pentru autentificare, cheia autorității de certificare care a semnat certificatul. Pentru ca o cheie să fie de încredere ca autoritate de certificare, aceasta trebuie să utilizeze marcajul “@cert-authority” descris mai sus.
Fișierul de gazde cunoscute oferă, de asemenea, posibilitatea de a marca cheile ca fiind revocate, de exemplu atunci când se știe că cheia privată asociată a fost furată. Cheile revocate sunt specificate prin includerea marcajului “@revoked” la începutul liniei cheii și nu sunt niciodată acceptate pentru autentificare sau ca autorități de certificare, ci vor produce un avertisment din partea ssh(1) atunci când sunt întâlnite.
Este permis (dar nu recomandat) să existe mai multe linii sau chei de gazdă diferite pentru aceleași nume. Acest lucru se va întâmpla în mod inevitabil atunci când formele scurte ale numelor de gazdă din domenii diferite sunt introduse în fișier. Este posibil ca fișierele să conțină informații contradictorii; autentificarea este acceptată dacă pot fi găsite informații valide în oricare dintre fișiere.
Rețineți că liniile din aceste fișiere sunt de obicei lungi de sute de caractere și cu siguranță nu doriți să introduceți cheile de gazdă de mână. Mai degrabă, generați-le printr-un script, ssh-keyscan(1) sau luând, de exemplu, /etc/ssh/ssh_host_rsa_key.pub și adăugând numele de gazdă în față. ssh-keygen(1) oferă, de asemenea, o editare automată de bază pentru ~/.ssh/known_hosts, inclusiv eliminarea gazdelor care corespund unui nume de gazdă și convertirea tuturor numelor de gazdă în reprezentările lor de sumă de control.
Un exemplu de fișier ssh_known_hosts:
# Comentarii permise la începutul liniei cvs.example.net,192.0.2.10 ssh-rsa AAAA1234.....= # Un nume de gazdă în format sumă de control |1|JfKTdBh7rNbXkVAQCRp4OQoPfmI=|USECr3SWf1JUPsms5AqfD5QfxkM= ssh-rsa AAAA1234.....= # O cheie revocată @revoked * ssh-rsa AAAAB5W... # O cheie CA, acceptată pentru orice gazdă din *.mydomain.com sau *.mydomain.org @cert-authority *.mydomain.org,*.mydomain.com ssh-rsa AAAAB5W...
FIȘIERE¶
- ~/.hushlogin
- Acest fișier este utilizat pentru a suprima imprimarea ultimei
autentificări și /etc/motd,
dacă sunt activate
PrintLastLog
și, respectiv,PrintMotd
. Aceasta nu suprimă afișarea anunțului specificat deBanner
. - ~/.rhosts
- Acest fișier este utilizat pentru autentificarea bazată pe
gazdă (consultați ssh(1) pentru mai multe
informații). Pe unele mașini, este posibil ca acest
fișier să trebuiască să poată fi citit
de toată lumea dacă directorul personal al utilizatorului
este pe o partiție NFS, deoarece
sshd
îl citește ca root. În plus, acest fișier trebuie să fie deținut de utilizator și nu trebuie să aibă permisiuni de scriere pentru nimeni altcineva. Permisiunea recomandată pentru majoritatea mașinilor este de citire/scriere pentru utilizator și neaccesibilă altor persoane. - ~/.shosts
- Acest fișier este utilizat exact în același mod ca .rhosts, dar permite autentificarea bazată pe gazdă fără a permite autentificarea cu rlogin/rsh.
- ~/.ssh/
- Acest director este locația implicită pentru toate informațiile de configurare și autentificare specifice utilizatorului. Nu există nicio cerință generală de a păstra secret întregul conținut al acestui director, dar permisiunile recomandate sunt de citire/scriere/executare pentru utilizator și neaccesibil pentru alții.
- ~/.ssh/authorized_keys
- Listează cheile publice (ECDSA, Ed25519, RSA) care pot fi utilizate
pentru conectarea ca utilizator. Formatul acestui fișier este
descris mai sus. Conținutul fișierului nu este extrem de
sensibil, dar permisiunile recomandate sunt de citire/scriere pentru
utilizator și neaccesibile altor persoane.
Dacă acest fișier, directorul ~/.ssh sau directorul personal al utilizatorului pot fi scrise de alți utilizatori, fișierul poate fi modificat sau înlocuit de utilizatori neautorizați. În acest caz,
sshd
nu va permite utilizarea acestuia decât dacă opțiuneaStrictModes
a fost stabilită la “no”. - ~/.ssh/environment
- Acest fișier este citit în mediu la autentificare
(dacă există). Acesta poate conține numai linii
goale, linii de comentariu (care încep cu
‘
#
’) și linii de atribuire de forma nume=valoare. Fișierul trebuie să poată fi scris numai de către utilizator; nu trebuie să poată fi citit de nimeni altcineva. Procesarea mediului este dezactivată implicit și este controlată prin intermediul opțiuniiPermitUserEnvironment
. - ~/.ssh/known_hosts
- Conține o listă de chei de gazdă pentru toate gazdele la care utilizatorul s-a conectat și care nu sunt deja în lista de chei de gazdă cunoscute la nivel de sistem. Formatul acestui fișier este descris mai sus. Acest fișier ar trebui să poată fi scris numai de către root/proprietar și poate, dar nu este necesar, să poată fi citit de toată lumea.
- ~/.ssh/rc
- Conține rutinele de inițializare care trebuie executate înainte ca directorul personal al utilizatorului să devină accesibil. Acest fișier trebuie să poată fi scris numai de către utilizator și nu trebuie să poată fi citit de nimeni altcineva.
- /etc/hosts.allow
- /etc/hosts.deny
- Controalele de acces care ar trebui aplicate de tcp-wrappers sunt definite aici. Detalii suplimentare sunt descrise în hosts_access(5).
- /etc/hosts.equiv
- Acest fișier este pentru autentificarea bazată pe gazdă (a se vedea ssh(1)). Ar trebui să poată fi scris numai de către root.
- /etc/ssh/moduli
- Conține grupurile Diffie-Hellman utilizate pentru metoda de schimb de chei „Diffie-Hellman Group Exchange”. Formatul fișierului este descris în moduli(5). Dacă nu se găsesc grupuri utilizabile în acest fișier, atunci se vor utiliza grupurile interne fixe.
- /etc/motd
- A se vedea motd(5).
- /etc/nologin
- Dacă acest fișier există,
sshd
refuză să permită oricărei persoane, cu excepția utilizatorului root, să se conecteze. Conținutul fișierului este afișat oricărei persoane care încearcă să se conecteze, iar conexiunile non-root sunt refuzate. Fișierul trebuie să poată fi citit de toată lumea. - /etc/ssh/shosts.equiv
- Acest fișier este utilizat exact în același mod ca hosts.equiv, dar permite autentificarea pe bază de gazdă fără a permite autentificarea cu rlogin/rsh.
- /etc/ssh/ssh_host_ecdsa_key
- /etc/ssh/ssh_host_ed25519_key
- /etc/ssh/ssh_host_rsa_key
- Aceste fișiere conțin părțile private ale
cheilor de gazdă. Aceste fișiere ar trebui să fie
deținute numai de root, să poată fi citite numai de
root și să nu fie accesibile altor persoane.
Rețineți că
sshd
nu pornește dacă aceste fișiere sunt accesibile grupului/ lumii. - /etc/ssh/ssh_host_ecdsa_key.pub
- /etc/ssh/ssh_host_ed25519_key.pub
- /etc/ssh/ssh_host_rsa_key.pub
- Aceste fișiere conțin părțile publice ale cheilor gazdei. Aceste fișiere ar trebui să poată fi citite de toată lumea, dar să poată fi scrise numai de către root. Conținutul lor trebuie să corespundă părților private respective. Aceste fișiere nu sunt utilizate cu adevărat pentru nimic; ele sunt furnizate pentru confortul utilizatorului, astfel încât conținutul lor să poată fi copiat în fișiere gazdă cunoscute. Aceste fișiere sunt create utilizând ssh-keygen(1).
- /etc/ssh/ssh_known_hosts
- Lista la nivel de sistem a cheilor de gazdă cunoscute. Acest fișier trebuie pregătit de administratorul sistemului pentru a conține cheile publice de gazdă ale tuturor echipamentelor din organizație. Formatul acestui fișier este descris mai sus. Acest fișier trebuie să poată fi scris numai de către root/proprietar și trebuie să poată fi citit de toată lumea.
- /etc/ssh/sshd_config
- Conține date de configurare pentru
sshd
. Formatul fișierului și opțiunile de configurare sunt descrise în sshd_config(5). - /etc/ssh/sshrc
- Similar cu ~/.ssh/rc, acesta poate fi utilizat pentru a specifica inițializările de conectare specifice mașinii la nivel global. Acest fișier ar trebui să poată fi scris numai de către root și ar trebui să poată fi citit de toată lumea.
- /run/sshd
- Directorul chroot(2) utilizat de
sshd
în timpul separării privilegiilor în faza de pre-autentificare. Directorul nu trebuie să conțină niciun fișier și trebuie să fie deținut de root și să nu poată fi scris de grup sau de alții. - /run/sshd.pid
- Conține ID-ul procesului
sshd
care ascultă conexiunile (în cazul în care există mai mulți demoni care rulează concomitent pentru porturi diferite, acesta conține ID-ul procesului celui pornit ultima dată). Conținutul acestui fișier nu este sensibil; el poate fi citit de toată lumea.
CONSULTAȚI ȘI¶
scp(1), sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh-keyscan(1), chroot(2), hosts_access(5), moduli(5), sshd_config(5), inetd(8), sftp-server(8)
AUTORI¶
OpenSSH este un derivat al versiunii originale și libere ssh 1.2.12 de Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt și Dug Song au eliminat multe erori, au adăugat caracteristici noi și au creat OpenSSH. Markus Friedl a contribuit la suportul pentru versiunile 1.5 și 2.0 ale protocolului SSH. Niels Provos și Markus Friedl au contribuit la suportul pentru separarea privilegiilor.
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net
$Mdocdate: 15 septembrie 2024 $ | Debian |