SSH-KEYGEN(1) | General Commands Manual | SSH-KEYGEN(1) |
NUME
ssh-keygen
—
instrument pentru cheile de autentificare
OpenSSH
SINOPSIS
ssh-keygen
[-q
]
[-a
runde]
[-b
bits]
[-C
comentariu]
[-f
fișier-cheie_de_ieșire]
[-m
format]
[-N
frază-de-acces_nouă]
[-O
opțiune]
[-t
ecdsa
|
ecdsa-sk
| ed25519
|
ed25519-sk
| rsa
]
[-w
furnizor]
[-Z
cifrarea]
ssh-keygen
-p
[-a
runde]
[-f
fișier-cheie]
[-m
format]
[-N
frază-de-acces_nouă]
[-P
frază-de-acces_veche]
[-Z
cifrarea]
ssh-keygen
-i
[-f
fișier-cheie_de_intrare]
[-m
format-cheie]
ssh-keygen
-e
[-f
fișier-cheie_de_intrare]
[-m
format-cheie]
ssh-keygen
-y
[-f
fișier-cheie_de_intrare]
ssh-keygen
-c
[-a
runde]
[-C
comentariu]
[-f
fișier-cheie]
[-P
frază-acces]
ssh-keygen
-l
[-v
] [-E
hash-fingerprint] [-f
fișier-cheie_de_intrare]
ssh-keygen
-B
[-f
fișier-cheie_de_intrare]
ssh-keygen
-D
pkcs11 ssh-keygen
-F
nume-gazdă
[-lv
] [-f
fișier-gazde-cunoscute]
ssh-keygen
-H
[-f
fișier-gazde-cunoscute]
ssh-keygen
-K
[-a
runde]
[-w
furnizor]
ssh-keygen
-R
nume-gazdă [-f
fișier-gazde-cunoscute]
ssh-keygen
-r
nume-gazdă [-g
]
[-f
fișier-cheie_de_intrare]
ssh-keygen
-M
generate
[-O
opțiune]
fișier_ieșire
ssh-keygen
-M
screen
[-f
fișier_intrare] [-O
opțiune]
fișier_ieșire
ssh-keygen
-I
identitate_certificat -s
ca_key [-hU
]
[-D
pkcs11_provider]
[-n
principali]
[-O
opțiune]
[-V
interval-valabilitate]
[-z
număr-serie]
file ... ssh-keygen
-L
[-f
fișier-cheie_de_intrare]
ssh-keygen
-A
[-a
runde]
[-f
prefix-rută]
ssh-keygen
-k
-f
fișier-krl
[-u
] [-s
public-CA] [-z
număr-versiune] file ...
ssh-keygen
-Q
[-l
] -f
fișier-krl file ...
ssh-keygen
-Y
find-principals
[-O
opțiune] -s
fișier-semnătură
-f
fișier-semnatari-autorizați
ssh-keygen
-Y
match-principals
-I
identitate-semnatar -f
fișier-semnatari-autorizați
ssh-keygen
-Y
check-novalidate
[-O
opțiune] -n
spațiu-nume -s
fișier-semnătură
ssh-keygen
-Y
sign
[-O
opțiune] -f
fișier-cheie -n
spațiu-nume file ...
ssh-keygen
-Y
verify
[-O
opțiune] -f
fișier-semnatari-autorizați
-I
identitate-semnatar
-n
spațiu-nume
-s
fișier-semnătură
[-r
fișier-revocare]
DESCRIERE
ssh-keygen
generează,
gestionează și convertește cheile de autentificare
pentru ssh(1).
ssh-keygen
poate crea chei pentru a fi utilizate de
protocolul SSH versiunea 2.
Tipul de cheie care urmează să fie generat este
specificat cu ajutorul opțiunii -t
. În
cazul în care este invocat fără niciun argument,
ssh-keygen
va genera o cheie Ed25519.
ssh-keygen
este, de asemenea, utilizat
pentru a genera grupuri pentru utilizarea în schimbul de grupuri
Diffie-Hellman (DH-GEX). A se vedea secțiunea
GENERAREA DE MODULI pentru
detalii.
În sfârșit,
ssh-keygen
poate fi utilizat pentru a genera
și actualiza listele de revocare a cheilor și pentru a testa
dacă anumite chei au fost revocate de una dintre acestea. Pentru
detalii, consultați secțiunea
LISTE DE REVOCARE A
CHEILOR.
În mod normal, fiecare utilizator care dorește să utilizeze SSH cu autentificare cu cheie publică execută această operație o singură dată pentru a crea cheia de autentificare în ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519, ~/.ssh/id_ed25519_sk sau ~/.ssh/id_rsa. În plus, administratorul de sistem poate folosi acest lucru pentru a genera chei de gazdă, așa cum se vede în /etc/rc.
În mod normal, acest program generează cheia
și solicită un fișier în care să fie
stocată cheia privată. Cheia publică este
stocată într-un fișier cu același nume, dar cu
mențiunea “.pub”. Programul solicită, de
asemenea, o frază de acces. Fraza de acces poate fi goală
pentru a indica faptul că nu există o frază de acces
(cheile gazdă trebuie să aibă o frază de acces
goală) sau poate fi un șir de lungime arbitrară. O
frază de acces este similară cu o parolă, cu
excepția faptului că poate fi o frază cu o serie de
cuvinte, semne de punctuație, numere, spații albe sau orice
șir de caractere pe care îl doriți. Frazele de acces
bune au o lungime de 10-30 de caractere, nu sunt propoziții simple
sau ușor de ghicit (proza în limba engleză are doar 1-2
biți de entropie per caracter și oferă fraze de acces
foarte proaste) și conțin un amestec de litere majuscule
și minuscule, numere și caractere non-alfanumerice. Fraza de
acces poate fi modificată ulterior prin utilizarea opțiunii
-p
.
Nu există nicio modalitate de a recupera o frază de acces pierdută. În cazul în care fraza de acces este pierdută sau uitată, trebuie generată o nouă cheie și cheia publică corespunzătoare trebuie copiată pe alte mașini.
ssh-keygen
va scrie în mod implicit
cheile într-un format specific OpenSSH. Acest format este preferat
deoarece oferă o protecție mai bună pentru cheile
în repaus și permite stocarea comentariilor privind cheile
în fișierul de chei private. Comentariul cheii poate fi util
pentru a ajuta la identificarea cheii. Comentariul este inițializat
la “utilizator@gazdă” atunci când cheia este
creată, dar poate fi modificat cu ajutorul opțiunii
-c
.
Este în continuare posibil ca
ssh-keygen
să scrie cheile private în
formatul PEM utilizat anterior, utilizând opțiunea
-m
. Aceasta poate fi utilizată la generarea
de chei noi, iar cheile existente în format nou pot fi convertite
utilizând această opțiune împreună cu
opțiunea -p
(schimbare frază de
acces).
După ce o cheie este generată,
ssh-keygen
va întreba unde trebuie plasate
cheile pentru a fi activate.
Opțiunile sunt următoarele:
-A
- Generează chei de gazdă pentru toate tipurile de chei
implicite (rsa, ecdsa și ed25519), dacă nu există
deja. Cheile de gazdă sunt generate cu ruta implicită a
fișierului de chei, o frază de acces goală,
biți impliciți pentru tipul de cheie și un comentariu
implicit. Dacă a fost specificată și
-f
, argumentul său este utilizat ca prefix pentru ruta implicită pentru fișierele de chei de gazdă rezultate. Aceasta este utilizată de /etc/rc pentru a genera noi chei gazdă. -a
runde- La salvarea unei chei private, această opțiune specifică numărul de runde KDF (funcția de derivare a cheilor, în prezent bcrypt_pbkdf(3)) utilizate. Un număr mai mare duce la o verificare mai lentă a frazei de acces și la o rezistență mai mare la spargerea prin forță brută a parolei (în cazul în care cheile sunt furate). Valoarea implicită este de 16 runde.
-B
- Afișează suma de control în formatul „bubblebabble” a fișierului de chei private sau publice specificat.
-b
biți- Specifică numărul de biți din cheia care
urmează să fie creată. Pentru cheile RSA, dimensiunea
minimă este de 1024 de biți, iar cea implicită este
de 3072 de biți. În general, 3072 de biți este
considerată suficientă. Pentru cheile ECDSA, opțiunea
-b
determină lungimea cheii prin selectarea uneia dintre cele trei dimensiuni ale curbei eliptice: 256, 384 sau 521 de biți. Încercarea de a utiliza alte lungimi de biți decât aceste trei valori pentru cheile ECDSA va eșua. Cheile ECDSA-SK, Ed25519 și Ed25519-SK au o lungime fixă, iar opțiunea-b
va fi ignorată. -C
comentariu- Furnizează un comentariu nou.
-c
- Solicită modificarea comentariului din fișierele de chei private și publice. Programul va solicita fișierul care conține cheile private, fraza de acces, dacă cheia are una, și noul comentariu.
-D
pkcs11- Descarcă cheile publice furnizate de biblioteca partajată
PKCS#11 pkcs11. Atunci când este
utilizată în combinație cu
-s
, această opțiune indică faptul că o cheie a autorității de certificare (CA) se află într-un jeton PKCS#11 (a se vedea secțiunea CERTIFICATE pentru detalii). -E
hash-fingerprint- Specifică algoritmul sumei de control utilizat la afișarea amprentelor cheilor. Opțiunile valide sunt: “md5” și “sha256”. Opțiunea implicită este “sha256”.
-e
- Această opțiune va citi un fișier de chei private sau
publice OpenSSH și va afișa la ieșirea standard o
cheie publică într-unul dintre formatele specificate de
opțiunea
-m
. Formatul de export implicit este “RFC4716”. Această opțiune permite exportarea cheilor OpenSSH pentru a fi utilizate de alte programe, inclusiv de mai multe implementări SSH comerciale. -F
nume-gazdă | [nume-gazdă]:port- Caută nume-gazdă specificat (cu
numărul opțional al portului) într-un fișier
known_hosts, enumerând toate
aparițiile găsite. Această opțiune este
utilă pentru a găsi nume de gazde sau adrese transformate
în sume de control și poate fi utilizată, de
asemenea, împreună cu opțiunea
-H
pentru a imprima cheile găsite într-un format de sumă de control. -f
nume-fișier- Specifică numele de fișier al fișierului de chei.
-g
- Utilizează formatul generic DNS la imprimarea
înregistrărilor de resurse de „amprentă
digitală” (fingerprint) cu ajutorul comenzii
-r
. -H
- Transformă conținutul unui fișier
known_hosts în sume de control. Aceasta
înlocuiește toate numele de gazdă și adresele
cu reprezentări sub formă de sumă de control
în fișierul specificat; conținutul original este
mutat într-un fișier cu sufixul .old. Aceste sume de control
pot fi utilizate în mod normal de către
ssh
șisshd
, dar nu dezvăluie informații de identificare în cazul în care conținutul fișierului ar fi dezvăluit. Această opțiune nu va modifica numele de gazdă hașurate existente și, prin urmare, este sigură pentru a fi utilizată în fișiere care amestecă nume convertite în sume de control și nume neconvertite în sume de control. -h
- Atunci când semnați o cheie, creați un certificat de gazdă în loc de un certificat de utilizator. Consultați secțiunea CERTIFICATE pentru detalii.
-I
identitate_certificat- Specifică identitatea cheii atunci când se semnează o cheie publică. Consultați secțiunea CERTIFICATE pentru detalii.
-i
- Această opțiune va citi un fișier de chei private
(sau publice) necriptate în formatul specificat de opțiunea
-m
și va imprima o cheie privată (sau publică) compatibilă cu OpenSSH la ieșirea standard (stdout). Această opțiune permite importarea cheilor din alte programe, inclusiv din mai multe implementări SSH comerciale. Formatul de import implicit este “RFC4716”. -K
- Descarcă cheile rezidente de la un autentificator FIDO. Fișierele de chei publice și private vor fi scrise în directorul curent pentru fiecare cheie descărcată. În cazul în care sunt atașați mai mulți autentificatori FIDO, cheile vor fi descărcate de la primul autentificator accesat. Consultați secțiunea AUTENTIFICATOR FIDO pentru mai multe informații.
-k
- Generează un fișier KRL. În acest mod,
ssh-keygen
va genera un fișier KRL la locația specificată prin intermediul opțiunii-f
care revocă fiecare cheie sau certificat prezentat în linia de comandă. Cheile/certificatele care urmează să fie revocate pot fi specificate prin fișierul de chei publice sau utilizând formatul descris în secțiunea LISTE DE REVOCARE A CHEILOR. -L
- Afișează conținutul unuia sau mai multor certificate.
-l
- Afișează amprenta digitală a fișierului de
chei publice specificat.
ssh-keygen
va încerca să găsească fișierul cu cheia publică corespunzătoare și îi va imprima amprenta. Dacă este combinată cu opțiunea-v
, împreună cu amprenta digitală se furnizează o reprezentare vizuală ASCII a cheii. -M
generate
- Generează parametri candidați pentru schimbul de grup Diffie-Hellman (DH-GEX) pentru o eventuală utilizare de către metodele de schimb de chei ‘diffie-hellman-group-exchange-*’. Numerele generate de această operație trebuie să fie verificate în continuare înainte de utilizare. Pentru mai multe informații, consultați secțiunea GENERAREA DE MODULI.
-M
screen
- Verifică parametrii candidați pentru schimbul de grupuri Diffie-Hellman. Aceasta va accepta o listă de numere candidate și va testa dacă acestea sunt numere prime sigure (Sophie Germain) cu generatori de grup acceptabili. Rezultatele acestei operații pot fi adăugate la fișierul /etc/ssh/moduli. Pentru mai multe informații, consultați secțiunea GENERAREA DE MODULI.
-m
format-cheie- Specifică un format de cheie pentru generarea cheii,
opțiunile de conversie
-i
(import),-e
(export) și operația-p
de modificare a frazei de acces. Aceasta din urmă poate fi utilizată pentru a converti între formatele de chei private OpenSSH și de chei private PEM. Formatele de chei acceptate sunt: “RFC4716” (cheie publică sau privată RFC 4716/SSH2), “PKCS8” (cheie publică sau privată PKCS8) sau “PEM” (cheie publică PEM). În mod implicit, OpenSSH va scrie cheile private nou-generate în propriul format, dar atunci când convertește cheile publice pentru export, formatul implicit este “RFC4716”. Definirea unui format “PEM” atunci când se generează sau se actualizează un tip de cheie privată acceptat va face ca cheia să fie stocată în formatul tradițional al cheilor private PEM. -N
frază-de-acces_nouă- Furnizează noua frază de acces.
-n
principale- Specifică unul sau mai mulți principali (nume de utilizatori sau de gazde) care urmează să fie incluși într-un certificat la semnarea unei chei. Se pot specifica mai mulți principali, separați prin virgule. Pentru detalii, consultați secțiunea CERTIFICATE.
-O
opțiune- Specifică o opțiune cheie/valoare. Acestea sunt specifice
operației pe care
ssh-keygen
a fost solicitat să o efectueze.La semnarea certificatelor, se poate specifica aici una dintre opțiunile enumerate în secțiunea CERTIFICATE.
Atunci când se efectuează generarea sau verificarea de moduli, se poate specifica una dintre opțiunile enumerate în secțiunea GENERAREA DE MODULI.
La generarea cheilor bazate pe autentificatorul FIDO, pot fi specificate opțiunile enumerate în secțiunea AUTENTIFICATOR FIDO.
Atunci când se execută opțiuni legate de semnătură cu ajutorul fanionului
-Y
, sunt acceptate următoarele opțiuni:hashalg
=algoritm- Selectează algoritmul de sumă de control care urmează să fie utilizat pentru calcularea sumei de control a mesajului care urmează să fie semnat. Algoritmii valabili sunt “sha256” și “sha512.” Valoarea implicită este “sha512.”.
print-pubkey
- Afișează cheia publică completă la ieșirea standard după verificarea semnăturii.
verify-time
=marcaj-timp- Specifică timpul care să fie utilizat la validarea semnăturilor în locul timpului curent. Timpul poate fi specificat ca dată sau oră în format AAAALLZZ[Z] sau AAAALLZZHHMM[SS][Z]. Datele și orele vor fi interpretate în fusul orar curent al sistemului, cu excepția cazului în care sunt sufixate cu un caracter Z, ceea ce face ca acestea să fie interpretate în fusul orar UTC.
Atunci când se generează înregistrări DNS SSHFP din chei publice utilizând fanionul
-r
, sunt acceptate următoarele opțiuni:hashalg
=algoritm- Selectează un algoritm de sumă de control (hash) care
să fie utilizat la imprimarea înregistrărilor
SSHFP utilizând opțiunea
-D
. Algoritmii valabili sunt “sha1” și “sha256”. Valoarea implicită este de a le imprima pe ambele.
Opțiunea
-O
poate fi specificată de mai multe ori. -P
frază-de-acces- Furnizează fraza de acces (veche).
-p
- Solicită modificarea frazei de acces a unui fișier de chei private în loc de crearea unei noi chei private. Programul va solicita fișierul care conține cheia privată, vechea frază de acces și de două ori noua frază de acces.
-Q
- Testează dacă cheile au fost revocate într-un
fișier KRL. Dacă este specificată și
opțiunea
-l
, se va afișa conținutul KRL. -q
- Face ca
ssh-keygen
să opereze silențios. -R
nume-gazdă | [nume-gazdă]:port- Elimină toate cheile aparținând
nume-gazdă specificat (cu numărul
opțional al portului) dintr-un fișier
known_hosts. Această opțiune este
utilă pentru a șterge gazdele cu numele convertit în
sumă de control (a se vedea opțiunea
-H
de mai sus). -r
nume-gazdă- Afișează înregistrarea resurselor de amprentă SSHFP numită nume-gazdă pentru fișierul de chei publice specificat.
-s
cheie_CA- Certifică (semnează) o cheie publică utilizând
cheia CA specificată. Pentru detalii, consultați
secțiunea CERTIFICATE.
Atunci când se generează un fișier KRL,
-s
specifică o rută către un fișier de chei publice de CA utilizat pentru a revoca certificatele direct după ID-ul cheii sau numărul de serie. Pentru detalii, consultați secțiunea LISTE DE REVOCARE A CHEILOR. -t
ecdsa
|ecdsa-sk
|ed25519
|ed25519-sk
|rsa
- Specifică tipul de cheie care trebuie creată. Valorile
posibile sunt “ecdsa”, “ecdsa-sk”,
“ed25519”, “ed25519-sk” sau
“rsa”.
Această opțiune poate fi utilizată, de asemenea, pentru a specifica tipul de semnătură dorit atunci când se semnează certificate care utilizează o cheie RSA CA. Variantele de semnătură RSA disponibile sunt “ssh-rsa” (semnături SHA1, nerecomandate), “rsa-sha2-256” și “rsa-sha2-512” (varianta implicită).
-U
- Atunci când este utilizată în combinație cu
-s
sau-Y
sign
, această opțiune indică faptul că o cheie CA se află într-un ssh-agent(1). Pentru mai multe informații, consultați secțiunea CERTIFICATE. -u
- Actualizează un fișier KRL. Atunci când este
specificat cu
-k
, cheile enumerate prin linia de comandă sunt adăugate la KRL-ul existent, în loc să fie creat un nou KRL. -V
interval_valabilitate- Specifică un interval de valabilitate la semnarea unui certificat.
Un interval de valabilitate poate consta dintr-un singur moment,
indicând că certificatul este valabil începând
din acest moment și expirând în acel moment, sau
poate consta din două momente separate de două puncte pentru
a indica un interval de timp explicit.
Momentul de începere poate fi specificat astfel:
- Șirul “always” pentru a indica faptul că certificatul nu are o oră de începere specificată.
- O dată sau o oră în fusul orar al sistemului, formatată ca AAAALLZZ sau AAAALLZZHHMM[SS].
- O dată sau o oră în fusul orar UTC sub forma AAAALLZZZ sau AAAALLZZHHMM[SS]Z.
- O oră relativă înaintea orei curente a sistemului, formată dintr-un semn minus urmat de un interval în formatul descris în secțiunea FORMATE DE TIMP din sshd_config(5).
- Un număr brut de secunde de la începutul epocii (1 ianuarie 1970 00:00:00:00 UTC) sub forma unui număr hexazecimal care începe cu “0x”.
Momentul de sfârșit poate fi specificat în mod similar cu momentul de început:
- Șirul de caractere “forever” pentru a indica faptul că certificatul nu are un termen de expirare specificat.
- O dată sau o oră în fusul orar al sistemului, formatată ca AAAALLZZ sau AAAALLZZHHMM[SS].
- O dată sau o oră în fusul orar UTC sub forma AAAALLZZZ sau AAAALLZZHHMM[SS]Z.
- O oră relativă după ora curentă a sistemului, formată dintr-un semn plus urmat de un interval în formatul descris în secțiunea FORMATE DE TIMP din sshd_config(5).
- Un număr brut de secunde de la începutul epocii (1 ianuarie 1970 00:00:00:00 UTC) sub forma unui număr hexazecimal care începe cu “0x”.
De exemplu:
- +52w1d
- Valabil de acum până la 52 de săptămâni și o zi de acum încolo.
- -4w:+4w
- Valabil de acum patru săptămâni până la patru săptămâni de acum încolo.
- 20230101123000:20240101123000
- Valabil de la ora 12:30 PM, 1 ianuarie 2023 până la ora 12:30 PM, 1 ianuarie 2024.
- 20230101123000Z:20240101123000Z
- Similar, dar interpretat în fusul orar UTC și nu în fusul orar al sistemului.
- -1d:20250101
- Valabil de ieri până la miezul nopții, 1 ianuarie 2025.
- 0x1:0x2000000000
- Valabil aproximativ de la începutul anului 1970 până în mai 2033.
- -1m:forever
- Valabil începând cu un minut în urmă și nu expiră niciodată.
-v
- Modul descriptiv. Face ca
ssh-keygen
să afișeze mesaje de depanare despre progresul său. Acest lucru este util pentru depanarea generării de module. Opțiunile multiple ale-v
sporesc gradul de detalii. Valoarea maximă este 3. -w
furnizor- Specifică o rută către o bibliotecă care va fi utilizată la crearea cheilor găzduite de autentificatorul FIDO, înlocuind opțiunea implicită de utilizare a suportului USB HID intern.
-Y
find-principals
- Găsește principalii asociați cu cheia publică
a unei semnături, furnizată cu ajutorul fanionului
-s
într-un fișier de semnatari autorizați furnizat cu ajutorul fanionului-f
. Formatul fișierului de semnatari autorizați este documentat în secțiunea SEMNATARI AUTORIZAȚI de mai jos. În cazul în care se găsesc unul sau mai mulți împuterniciți care corespund, aceștia sunt returnați la ieșirea standard. -Y
match-principals
- Găsește principalul care se potrivește cu numele
principalului furnizat cu ajutorul fanionului
-I
în fișierul semnatarilor autorizați specificat cu ajutorul fanionului-f
. În cazul în care se găsesc unul sau mai mulți principali care corespund, aceștia sunt returnați la ieșirea standard. -Y
check-novalidate
- Verifică dacă o semnătură generată
folosind
ssh-keygen
-Y
sign
are o structură validă. Aceasta nu validează dacă o semnătură provine de la un semnatar autorizat. Atunci când testează o semnătură,ssh-keygen
acceptă un mesaj la intrarea standard și un spațiu de nume de semnătură folosind-n
. Un fișier care conține semnătura corespunzătoare trebuie, de asemenea, să fie furnizat folosind fanionul-s
. Testarea cu succes a semnăturii este semnalată dessh-keygen
prin returnarea unei stări de ieșire zero. -Y
sign
- Semnează criptografic un fișier sau anumite date
utilizând o cheie SSH. Atunci când semnează,
ssh-keygen
acceptă zero sau mai multe fișiere de semnat în linia de comandă - dacă nu este specificat niciun fișier,ssh-keygen
va semna datele prezentate la intrarea standard. Semnăturile sunt scrise în ruta fișierului de intrare cu “.sig” atașat, sau la ieșirea standard în cazul în care mesajul care urmează să fie semnat a fost citit de la intrarea standard.Cheia utilizată pentru semnare este specificată cu ajutorul opțiunii
-f
și se poate referi fie la o cheie privată, fie la o cheie publică cu jumătatea privată disponibilă prin ssh-agent(1). Un spațiu de nume de semnătură suplimentar, utilizat pentru a preveni confuzia de semnături în diferite domenii de utilizare (de exemplu, semnarea fișierelor vs. semnarea mesajelor de poștă electronică) trebuie furnizat prin intermediul fanionului-n
. Spațiile de nume sunt șiruri de caractere arbitrare și pot include: “file” pentru semnarea fișierelor, “email” pentru semnarea mesajelor electronice. Pentru utilizări personalizate, se recomandă utilizarea de nume care să urmeze un model SPAȚIU_DE_NUME@DOMENIUL.DVS pentru a genera spații de nume lipsite de ambiguitate. -Y
verify
- Solicită verificarea unei semnături generate folosind
ssh-keygen
-Y
sign
, așa cum a fost descris mai sus. Atunci când verifică o semnătură,ssh-keygen
acceptă un mesaj la intrarea standard și un spațiu de nume al semnăturii folosind-n
. De asemenea, trebuie să se furnizeze un fișier care conține semnătura corespunzătoare cu ajutorul fanionului-s
, împreună cu identitatea semnatarului cu ajutorul-I
și o listă de semnatari autorizați cu ajutorul fanionului-f
. Formatul fișierului semnatarilor autorizați este documentat în secțiunea SEMNATARI AUTORIZAȚI de mai jos. Un fișier care conține chei revocate poate fi transmis cu ajutorul fanionului-r
. Fișierul de revocare poate fi un KRL sau o listă de chei publice, una pe linie. Verificarea reușită de către un semnatar autorizat este semnalată prin faptul căssh-keygen
returnează o stare de ieșire zero. -y
- Această opțiune va citi un fișier privat în format OpenSSH și va imprima o cheie publică OpenSSH la ieșirea standard.
-Z
cifrarea- Specifică cifrarea care trebuie utilizată pentru criptare atunci când se scrie un fișier de cheie privată în format OpenSSH. Lista cifrărilor disponibile poate fi obținută utilizând "ssh -Q cipher". Valoarea implicită este “aes256-ctr”.
-z
număr-serie- Specifică un număr de serie care trebuie încorporat
în certificat pentru a distinge acest certificat de altele de la
aceeași autoritate de certificare (CA). Dacă
număr-serie este prefixat cu un caracter
‘+’, atunci numărul de serie va fi incrementat pentru
fiecare certificat semnat pe o singură linie de comandă.
Numărul de serie implicit este zero.
Atunci când se generează un KRL, fanionul
-z
este utilizat pentru a specifica un număr de versiune KRL.
GENERARE DE MODULI
ssh-keygen
poate fi utilizat pentru a
genera grupuri pentru protocolul Diffie-Hellman Group Exchange (DH-GEX).
Generarea acestor grupuri este un proces în două etape: mai
întâi, se generează numere prime candidate folosind un
proces rapid, dar care necesită multă memorie. Aceste prime
candidate sunt apoi testate pentru a se verifica dacă sunt adecvate
(un proces care necesită un consum intensiv de CPU).
Generarea numerelor prime se realizează cu ajutorul
opțiunii -M
generate
.
Lungimea dorită a numerelor prime poate fi specificată cu
ajutorul opțiunii -O
bits
. De exemplu:
# ssh-keygen -M generate -O bits=2048
moduli-2048.candidates
În mod implicit, căutarea numerelor prime
începe într-un punct aleatoriu din intervalul de lungime
dorit. Acest lucru poate fi anulat cu ajutorul opțiunii
-O
start
, care
specifică un alt punct de pornire (în hexazecimal).
După ce a fost generat un set de candidați,
aceștia trebuie să fie examinați pentru a se stabili
dacă sunt potriviți. Acest lucru poate fi realizat cu ajutorul
opțiunii -M
screen
.
În acest mod, ssh-keygen
va citi
candidații de la intrarea standard (sau dintr-un fișier
specificat cu ajutorul opțiunii -f
). De
exemplu:
# ssh-keygen -M screen -f
moduli-2048.candidates moduli-2048
În mod implicit, fiecare candidat va fi supus la 100 de
teste de primalitate. Acest lucru poate fi anulat cu ajutorul
opțiunii -O
prime-tests
. Valoarea generatorului DH va fi
aleasă în mod automat pentru prima considerată.
În cazul în care se dorește un generator specific,
acesta poate fi solicitat utilizând opțiunea
-O
generator
. Valorile
valide ale generatorului sunt 2, 3 și 5.
Grupurile DH verificate pot fi instalate în /etc/ssh/moduli. Este important ca acest fișier să conțină moduli cu o serie de lungimi de biți.
Sunt disponibile o serie de opțiuni pentru generarea
și verificarea de moduli prin intermediul fanionului
-O
:
lines
=număr- Iese după examinarea numărului specificat de linii în timp ce se efectuează examinarea candidaților DH.
start-line
=număr-linie- Începe examinarea la numărul de linie specificat în timp ce se efectuează examinarea candidaților DH.
checkpoint
=nume-fișier- Scrie ultima linie procesată în fișierul specificat în timpul efectuării verificării candidaților DH. Acest lucru va fi utilizat pentru a sări peste liniile din fișierul de intrare care au fost deja procesate, în cazul în care activitatea este repornită.
memory
=Mocteți- Specifică cantitatea de memorie care trebuie utilizată (în megaocteți) la generarea de moduli candidați pentru DH-GEX.
start
=valoare-hex- Specifică punctul de pornire (în hexazecimal) la generarea de moduli candidați pentru DH-GEX.
generator
=valoare- Specifică generatorul dorit (în zecimal) atunci când se efectuează testarea de moduli candidați pentru DH-GEX.
CERTIFICATE
ssh-keygen
acceptă semnarea cheilor
pentru a produce certificate care pot fi utilizate pentru autentificarea
utilizatorului sau a gazdei. Certificatele constau dintr-o cheie
publică, unele informații privind identitatea, zero sau mai
multe nume principale (utilizator sau gazdă) și un set de
opțiuni care sunt semnate de o cheie a autorității de
certificare (CA). Clienții sau serverele pot avea încredere
doar în cheia CA și pot verifica semnătura acesteia pe
un certificat, în loc să aibă încredere
în mai multe chei de utilizator/gazdă. Rețineți
că certificatele OpenSSH au un format diferit și mult mai
simplu decât certificatele X.509 utilizate în
ssl(8).
ssh-keygen
acceptă două
tipuri de certificate: utilizator și gazdă. Certificatele de
utilizator autentifică utilizatorii față de servere,
în timp ce certificatele de gazdă autentifică gazdele
serverului față de utilizatori. Pentru a genera un certificat
de utilizator:
$ ssh-keygen -s /ruta/la/cheie_CA -I
key_id /ruta/la/cheie_utilizator.pub
Certificatul rezultat va fi plasat în
/ruta/la/certificat-cheie_utilizator.pub. Un
certificat de gazdă necesită opțiunea
-h
:
$ ssh-keygen -s /ruta/la/cheie_CA -I
key_id -h /ruta/la/cheie_gazdă.pub
Certificatul de gazdă va fi generat în /ruta/la/certificat-cheie_gazdă.pub.
Este posibil să se semneze folosind o cheie CA
stocată într-un jeton PKCS#11, furnizând biblioteca de
jetoane prin utilizarea -D
și
identificând cheia CA prin furnizarea jumătății
publice a acesteia ca argument pentru -s
:
$ ssh-keygen -s cheie_CA.pub -D
libpkcs11.so -I id_cheie cheie_utilizator.pub
În mod similar, este posibil ca cheia CA să fie
găzduită într-un
ssh-agent(1). Acest lucru este
indicat prin fanionul -U
și, din nou, cheia
CA trebuie să fie identificată prin jumătatea sa
publică.
$ ssh-keygen -Us ca_key.pub -I key_id
cheie_utilizator.pub
În toate cazurile, id_cheie este un „identificator de cheie” care este înregistrat de server atunci când certificatul este utilizat pentru autentificare.
Certificatele pot fi limitate pentru a fi valabile pentru un set de nume principale (utilizator/gazdă). În mod implicit, certificatele generate sunt valabile pentru toți utilizatorii sau gazdele. Pentru a genera un certificat pentru un set specificat de principali:
$ ssh-keygen -s cheie_CA -I id_cheie
-n utilizator1,utilizator2 cheie_utilizator.pub
$ ssh-keygen -s cheie_CA -I id_cheie
-h -n gazdă.domeniu cheie_gazdă.pub
Limitările suplimentare privind valabilitatea și utilizarea certificatelor de utilizator pot fi specificate prin intermediul opțiunilor de certificat. O opțiune de certificat poate dezactiva caracteristici ale sesiunii SSH, poate fi valabilă numai atunci când este prezentată de la anumite adrese sursă sau poate forța utilizarea unei comenzi specifice.
Opțiunile care sunt valabile pentru certificatele de utilizator sunt:
clear
- Anulează toate permisiunile activate. Acest lucru este util pentru a șterge setul implicit de permisiuni, astfel încât permisiunile să poată fi adăugate individual.
critical
:nume[=conținut]extension
:nume[=conținut]- Include o opțiune sau o extensie critică de certificat arbitrară. numele specificat trebuie să includă un sufix de domeniu, de exemplu: “nume@example.com”. Dacă este specificat conținut, atunci este inclus conținutul extensiei/opțiunii codificat ca un șir de caractere, în caz contrar extensia/opțiunea este creată fără conținut (indicând de obicei un fanion). Extensiile pot fi ignorate de un client sau server care nu le recunoaște, în timp ce opțiunile critice necunoscute vor determina refuzul certificatului.
force-command
=comanda- Forțează executarea comenzii comanda în loc de orice shell sau comandă specificată de utilizator atunci când certificatul este utilizat pentru autentificare.
no-agent-forwarding
- Dezactivează redirecționarea ssh-agent(1) (permisă în mod implicit).
no-port-forwarding
- Dezactivați redirecționarea porturilor (permisă în mod implicit).
no-pty
- Dezactivează alocarea PTY (permisă în mod implicit).
no-user-rc
- Dezactivează executarea ~/.ssh/rc de către sshd(8) (permisă în mod implicit).
no-x11-forwarding
- Dezactivează redirecționarea X11 (permisă în mod implicit).
permit-agent-forwarding
- Permite redirecționarea ssh-agent(1).
permit-port-forwarding
- Permite redirecționarea porturilor.
permit-pty
- Permite alocarea PTY.
permit-user-rc
- Permite executarea ~/.ssh/rc de către sshd(8).
permit-X11-forwarding
- Permite redirecționarea X11.
no-touch-required
- Nu solicită ca semnăturile realizate cu această cheie
să includă demonstrarea prezenței utilizatorului (de
exemplu, prin atingerea autentificatorului de către utilizator).
Această opțiune are sens numai pentru algoritmii de
autentificare FIDO
ecdsa-sk
șied25519-sk
. source-address
=listă-adrese- Restricționează adresele sursă de la care certificatul este considerat valabil. listă-adrese este o listă de una sau mai multe perechi adresă/mască de rețea în format CIDR, separate prin virgule.
verify-required
- Cererile de semnături realizate cu această cheie
indică faptul că utilizatorul a fost verificat pentru prima
dată. Această opțiune are sens numai pentru
algoritmii de autentificare FIDO
ecdsa-sk
șied25519-sk
. În prezent, autentificarea prin PIN este singura metodă de verificare acceptată, dar este posibil ca în viitor să fie acceptate și alte metode.
În prezent, nicio opțiune standard nu este valabilă pentru cheile gazdă.
În cele din urmă, certificatele pot fi definite cu o
durată de valabilitate. Opțiunea -V
permite specificarea orelor de început și de
sfârșit ale certificatului. Un certificat care este prezentat
la o oră în afara acestui interval nu va fi considerat
valabil. În mod implicit, certificatele sunt valabile de la Epoca
UNIX până în viitorul
îndepărtat.
Pentru ca certificatele să fie utilizate pentru autentificarea utilizatorului sau a gazdei, cheia publică a autorității de certificare (CA) trebuie să fie de încredere pentru sshd(8) sau ssh(1). Consultați paginile de manual respective pentru detalii.
Autentificator FIDO
ssh-keygen
este capabil să genereze
chei FIDO bazate pe autentificatorul FIDO, după care acestea pot fi
utilizate la fel ca orice alt tip de cheie acceptat de OpenSSH, atât
timp cât autentificatorul hardware este atașat atunci
când sunt utilizate cheile. Autentificatorii FIDO necesită,
în general, ca utilizatorul să autorizeze în mod
explicit operațiile prin atingerea sau acoperirea acestora. Cheile
FIDO sunt formate din două părți: o parte de tip
gestionar de chei stocată în fișierul de chei private
de pe disc și o cheie privată pentru fiecare dispozitiv, care
este unică pentru fiecare autentificator FIDO și care nu poate
fi exportată de pe hardware-ul autentificatorului. Acestea sunt
combinate de hardware în momentul autentificării pentru a
obține cheia reală care este utilizată pentru a semna
provocările de autentificare. Tipurile de chei acceptate sunt
ecdsa-sk
și
ed25519-sk
.
Opțiunile care sunt valabile pentru cheile FIDO sunt:
application
- Substituie șirul implicit de aplicație/origine FIDO de “ssh:”. Acest lucru poate fi util atunci când se generează chei rezidente specifice gazdei sau domeniului. Șirul de aplicații specificat trebuie să înceapă cu “ssh:”.
challenge
=ruta- Specifică o rută către un șir de provocare care va fi transmis autentificatorului FIDO în timpul generării cheii. Șirul de provocare poate fi utilizat ca parte a unui protocol în afara benzii pentru înscrierea cheii (în mod implicit, se utilizează o provocare aleatorie).
device
- Specifică în mod explicit un dispozitiv fido(4) care să fie utilizat, în loc să lase intermedierea selectării unuia în seama autentificatorului.
no-touch-required
- Indică faptul că cheia privată generată nu trebuie să necesite evenimente de atingere (prezența utilizatorului) atunci când se realizează semnăturile. Rețineți că sshd(8) va refuza în mod implicit astfel de semnături, cu excepția cazului în care nu este suprascrisă prin intermediul unei opțiuni authorized_keys.
resident
- Indică faptul că gestionarul de chei ar trebui să fie stocat chiar în autentificatorul FIDO. Acest lucru facilitează utilizarea autentificatorului pe mai multe calculatoare. Cheile rezidente pot fi acceptate pe autentificatorii FIDO2 și necesită, de obicei, ca un PIN să fie stabilit pe autentificator înainte de generare. Cheile rezidente pot fi încărcate de pe autentificator utilizând ssh-add(1). Stocarea ambelor părți ale unei chei pe un autentificator FIDO crește probabilitatea ca un atacator să poată utiliza un dispozitiv autentificator furat.
user
- Un nume de utilizator care urmează să fie asociat unei chei rezidente, înlocuind numele de utilizator implicit gol. Specificarea unui nume de utilizator poate fi utilă atunci când se generează mai multe chei rezidente pentru același nume de aplicație.
verify-required
- Indică faptul că această cheie privată trebuie să necesite verificarea utilizatorului pentru fiecare semnătură. Nu toți autentificatorii FIDO acceptă această opțiune. În prezent, autentificarea prin PIN este singura metodă de verificare acceptată, dar este posibil ca în viitor să fie acceptate și alte metode.
write-attestation
=ruta- Poate fi utilizată în momentul generării cheilor pentru a înregistra datele de atestare returnate de către autentificatorii FIDO în timpul generării cheilor. Aceste informații sunt potențial sensibile. În mod implicit, aceste informații sunt eliminate.
LISTE DE REVOCARE A CHEILOR
ssh-keygen
este capabil să
gestioneze listele de revocare a cheilor (KRL) în format OpenSSH.
Aceste fișiere binare specifică cheile sau certificatele care
urmează să fie revocate folosind un format compact,
necesitând doar un singur bit pentru fiecare certificat, dacă
acestea sunt revocate după numărul de serie.
KRL-urile pot fi generate utilizând fanionul
-k
. Această opțiune citește
unul sau mai multe fișiere din linia de comandă și
generează un nou KRL. Fișierele pot conține fie o
specificație KRL (a se vedea mai jos), fie chei publice, enumerate
una pe linie. Cheile publice simple sunt revocate prin enumerarea sumei lor
de control sau a conținutului lor în KRL, iar certificatele
sunt revocate prin numărul de serie sau ID-ul cheii (dacă
numărul de serie este zero sau nu este disponibil).
Revocarea cheilor utilizând o specificație KRL oferă un control explicit asupra tipurilor de înregistrări utilizate pentru revocarea cheilor și poate fi utilizată pentru a revoca direct certificatele în funcție de numărul de serie sau de ID-ul cheii fără a avea la îndemână certificatul original complet. O specificație KRL constă în linii care conțin una dintre următoarele directive, urmată de două puncte și de unele informații specifice directivei.
serial
: număr-serie[-număr-serie]- Revocă un certificat cu numărul de serie specificat.
Numerele de serie sunt valori pe 64 de biți, fără
zero și pot fi exprimate în zecimal, hexazecimal sau octal.
În cazul în care se specifică două numere de
serie separate de o cratimă, atunci se revocă intervalul de
numere de serie care include și se află între ele.
Cheia CA trebuie să fi fost specificată în linia de
comandă
ssh-keygen
cu ajutorul opțiunii-s
. id
: id-cheie- Revocă un certificat cu șirul de identificare a cheii
specificat. Cheia CA trebuie să fi fost specificată
în linia de comandă
ssh-keygen
cu ajutorul opțiunii-s
. key
: cheie-publică- Revocă cheia specificată. Dacă este listat un certificat, atunci acesta este revocat ca o cheie publică simplă.
sha1
: cheie-publică- Revocă cheia specificată prin includerea sumei de control SHA1 a acesteia în KRL.
sha256
: cheie-publică- Revocă cheia specificată prin includerea sumei de control SHA256 a acesteia în KRL. KRL-urile care revocă cheile prin intermediul sumelor de control SHA256 nu sunt acceptate de versiunile OpenSSH anterioare la versiunea 7.9.
hash
: amprentă-digitală- Revocă o cheie folosind o sumă de control de amprentă
digitală, așa cum este obținută dintr-un mesaj
de jurnal de autentificare sshd(8)
sau din fanionul
ssh-keygen
-l
. Numai amprentele SHA256 sunt acceptate aici, iar KRL-urile rezultate nu sunt acceptate de versiunile OpenSSH anterioare la versiunea 7.9.
KRL-urile pot fi actualizate utilizând fanionul
-u
în plus față de
-k
. Atunci când este specificată
această opțiune, cheile listate prin intermediul liniei de
comandă sunt încorporate în KRL,
adăugându-se la cele deja existente.
De asemenea, este posibil, având în vedere un KRL,
să se testeze dacă acesta revocă o anumită cheie
(sau chei). Fanionul -Q
va interoga un KRL existent,
testând fiecare cheie specificată în linia de
comandă. Dacă una dintre cheile enumerate în linia de
comandă a fost revocată (sau dacă s-a
întâlnit o eroare), atunci ssh-keygen
va ieși cu o stare de ieșire diferită de zero. O stare
de ieșire zero va fi returnată numai dacă nicio cheie
nu a fost revocată.
SEMNATARI AUTORIZAȚI
La verificarea semnăturilor,
ssh-keygen
utilizează o listă
simplă de identități și chei pentru a determina
dacă o semnătură provine dintr-o sursă
autorizată. Acest fișier „semnatari
autorizați” utilizează un format
asemănător cu cel al FORMATULUI FIȘIERULUI
AUTHORIZED_KEYS descris în
sshd(8). Fiecare linie a
fișierului conține următoarele câmpuri separate
prin spații: principals, options, keytype, keytype, base64-encoded
key. Liniile goale și liniile care încep cu un
‘#
’ sunt ignorate ca fiind
comentarii.
Câmpul „principals” este o listă de
modele (a se vedea MODELE în
ssh_config(5)) constând
din unul sau mai multe modele de identitate UTILIZATOR@DOMENIU separate prin
virgule care sunt acceptate pentru semnare. La verificare, identitatea
prezentată prin intermediul opțiunii
-I
trebuie să se potrivească cu un
model de „principals” pentru ca cheia corespunzătoare
să fie considerată acceptabilă pentru verificare.
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):
- Indică faptul că această cheie este acceptată ca autoritate de certificare (CA) și că certificatele semnate de această CA pot fi acceptate pentru verificare.
namespaces
=listă-spații-nume- Specifică o listă de spații de nume acceptate pentru această cheie. Dacă această opțiune este prezentă, spațiul de nume al semnăturii încorporat în obiectul semnătură și prezentat în linia de comandă de verificare trebuie să corespundă listei specificate pentru ca cheia să fie considerată acceptabilă.
valid-after
=marcaj-de-timp- Indică faptul că cheia este valabilă pentru utilizare la sau după data și ora specificate, care poate fi o dată sau o oră în formatul AAAALLZZ[Z] sau AAAALLZZHHMM[SS][Z]. Datele și orele vor fi interpretate în fusul orar curent al sistemului, cu excepția cazului în care sunt sufixate cu un caracter Z, ceea ce face ca acestea să fie interpretate în fusul orar UTC.
valid-before
=marcaj-de-timp- Indică faptul că cheia este valabilă pentru utilizare la sau înainte de data și ora specificate.
Atunci când se verifică semnăturile realizate prin certificate, numele principalului așteptat trebuie să corespundă atât cu modelul principalilor din fișierul cu semnatari autorizați, cât și cu principalii încorporați în certificatul propriu-zis.
Un exemplu de fișier de semnatari autorizați:
# Comentarii permise la începutul liniei utilizator1@example.com,utilizator2@example.com ssh-rsa AAAAX1... # O autoritate de certificare, de încredere pentru toți principalii dintr-un domeniu. *@example.com cert-authority ssh-ed25519 AAAB4... # O cheie care este acceptată numai pentru semnarea fișierelor. utilizator2@example.com namespaces="file" ssh-ed25519 AAA41...
MEDIU
SSH_SK_PROVIDER
- Specifică o rută către o bibliotecă care va fi utilizată la încărcarea oricăror chei găzduite de autentificatorul FIDO, înlocuind opțiunea implicită de utilizare a suportului USB HID încorporat.
FIȘIERE
- ~/.ssh/id_ecdsa
- ~/.ssh/id_ecdsa_sk
- ~/.ssh/id_ed25519
- ~/.ssh/id_ed25519_sk
- ~/.ssh/id_rsa
- Conține identitatea de autentificare ECDSA,găzduită
de autentificatorul ECDSA , identitatea de autentificare Ed25519,
găzduită de autentificatorul Ed25519 sau identitatea de
autentificare RSA a utilizatorului. Acest fișier nu trebuie
să poată fi citit decât de utilizator. Este posibil
să se specifice o frază de acces atunci când se
generează cheia; această frază de acces va fi
utilizată pentru a cripta partea privată a acestui
fișier utilizând AES pe 128 de biți. Acest
fișier nu este accesat automat de
ssh-keygen
, dar este oferit ca fișier implicit pentru cheia privată. ssh(1) va citi acest fișier atunci când se face o încercare de conectare. - ~/.ssh/id_ecdsa.pub
- ~/.ssh/id_ecdsa_sk.pub
- ~/.ssh/id_ed25519.pub
- ~/.ssh/id_ed25519_sk.pub
- ~/.ssh/id_rsa.pub
- Conține cheia publică ECDSA, găzduită de autentificatorul ECDSA, cheia publică Ed25519, găzduită de autentificatorul Ed25519 sau cheia publică RSA pentru autentificare. Conținutul acestui fișier trebuie adăugat la ~/.ssh/authorized_keys pe toate mașinile la care utilizatorul dorește să se conecteze folosind autentificarea cu cheie publică. Nu este necesar să păstrați secret conținutul acestui fișier.
- /etc/ssh/moduli
- Conține grupurile Diffie-Hellman utilizate pentru DH-GEX. Formatul fișierului este descris în moduli(5).
CONSULTAȚI ȘI
ssh(1), ssh-add(1), ssh-agent(1), moduli(5), sshd(8) The Secure Shell (SSH) Public Key File Format, RFC 4716, 2006.
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 din nou caracteristici noi și au creat OpenSSH. Markus Friedl a contribuit la suportul pentru versiunile 1.5 și 2.0 ale protocolului SSH.
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: 17 iunie 2024 $ | Linux 6.11.5-arch1-1 |