Yn y swydd hon, byddwn yn datblygu gweithdrefn ar gyfer mynediad brys i westeion SSH gan ddefnyddio allweddi diogelwch caledwedd all-lein. Dim ond un dull yw hwn, a gallwch ei addasu i weddu i'ch anghenion. Byddwn yn storio awdurdod tystysgrif SSH ar gyfer ein gwesteiwyr ar yr allwedd diogelwch caledwedd. Bydd y cynllun hwn yn gweithio ar bron unrhyw OpenSSH, gan gynnwys SSH gydag un mewngofnodi.
Beth yw pwrpas hyn i gyd? Wel, mae hwn yn ddewis olaf. Mae hwn yn ddrws cefn a fydd yn caniatáu ichi gael mynediad i'ch gweinydd pan nad oes unrhyw beth arall yn gweithio am ryw reswm.
Pam defnyddio tystysgrifau yn lle allweddi cyhoeddus/preifat ar gyfer mynediad brys?
- Yn wahanol i allweddi cyhoeddus, gall fod gan dystysgrifau oes fer iawn. Gallwch gynhyrchu tystysgrif sy'n ddilys am 1 munud neu hyd yn oed 5 eiliad. Ar ôl y cyfnod hwn, ni fydd modd defnyddio'r dystysgrif ar gyfer cysylltiadau newydd. Mae hyn yn ddelfrydol ar gyfer mynediad brys.
- Gallwch greu tystysgrif ar gyfer unrhyw gyfrif ar eich gwesteiwyr ac, os oes angen, anfon tystysgrifau “un-amser” o'r fath at gydweithwyr.
Beth sydd ei angen arnoch chi
- Allweddi diogelwch caledwedd sy'n cefnogi allweddi preswylwyr.
Mae allweddi preswylydd yn allweddi cryptograffig sy'n cael eu storio'n gyfan gwbl o fewn yr allwedd ddiogelwch. Weithiau maent yn cael eu hamddiffyn gan PIN alffaniwmerig. Gellir allforio rhan gyhoeddus yr allwedd breswylydd o'r allwedd ddiogelwch, yn ddewisol ynghyd â handlen yr allwedd breifat. Er enghraifft, mae allweddi USB cyfres Yubikey 5 yn cefnogi allweddi preswylwyr. Fe'ch cynghorir mai dim ond ar gyfer mynediad brys i'r gwesteiwr y cânt eu bwriadu. Ar gyfer y swydd hon byddaf yn defnyddio un allwedd yn unig, ond dylai fod gennych un ychwanegol ar gyfer gwneud copi wrth gefn. - Lle diogel i storio'r allweddi hynny.
- OpenSSH fersiwn 8.2 neu uwch ar eich cyfrifiadur lleol ac ar y gweinyddion yr ydych am gael mynediad brys iddynt. Mae Ubuntu 20.04 yn llongau gydag OpenSSH 8.2.
- (dewisol, ond argymhellir) Offeryn CLI ar gyfer gwirio tystysgrifau.
Hyfforddiant
Yn gyntaf, mae angen i chi greu awdurdod ardystio a fydd wedi'i leoli ar yr allwedd diogelwch caledwedd. Mewnosodwch yr allwedd a rhedeg:
$ ssh-keygen -t ecdsa-sk -f sk-user-ca -O resident -C [security key ID]
Fel sylw (-C) nodais [e-bost wedi'i warchod]felly ni fyddwch yn anghofio pa allwedd ddiogelwch y mae'r awdurdod tystysgrif hwn yn perthyn iddi.
Yn ogystal ag ychwanegu'r allwedd i'r Yubikey, bydd dwy ffeil yn cael eu cynhyrchu'n lleol:
- sk-user-ca, handlen allwedd sy'n cyfeirio at yr allwedd breifat sydd wedi'i storio yn yr allwedd ddiogelwch,
- sk-user-ca.pub, sef allwedd gyhoeddus eich awdurdod tystysgrif.
Ond peidiwch â phoeni, mae'r Yubikey yn storio allwedd breifat arall na ellir ei hadalw. Felly, mae popeth yn ddibynadwy yma.
Ar westeion, fel gwraidd, ychwanegwch (os nad ydych chi eisoes) y canlynol i'ch cyfluniad SSHD (/etc/ssh/sshd_config):
TrustedUserCAKeys /etc/ssh/ca.pub
Yna ar y gwesteiwr, ychwanegwch yr allwedd gyhoeddus (sk-user-ca.pub) i /etc/ssh/ca.pub
Ailgychwyn yr ellyll:
# /etc/init.d/ssh restart
Nawr gallwn geisio cael mynediad i'r gwesteiwr. Ond yn gyntaf mae angen tystysgrif arnom. Creu pâr allweddol a fydd yn gysylltiedig â'r dystysgrif:
$ ssh-keygen -t ecdsa -f emergency
Tystysgrifau a pharau SSH
Weithiau mae’n demtasiwn defnyddio tystysgrif yn lle pâr allwedd cyhoeddus/preifat. Ond nid yw tystysgrif yn unig yn ddigon i ddilysu defnyddiwr. Mae gan bob tystysgrif allwedd breifat yn gysylltiedig ag ef hefyd. Dyma pam mae angen i ni gynhyrchu'r pâr allwedd "argyfwng" hwn cyn i ni roi tystysgrif i ni ein hunain. Y peth pwysig yw ein bod yn dangos y dystysgrif wedi'i llofnodi i'r gweinydd, gan nodi'r pâr allweddol y mae gennym allwedd breifat ar eu cyfer.Felly mae cyfnewid allweddi cyhoeddus yn dal yn fyw ac yn iach. Mae hyn yn gweithio hyd yn oed gyda thystysgrifau. Yn syml, mae tystysgrifau yn dileu'r angen i'r gweinydd storio allweddi cyhoeddus.
Nesaf, crëwch y dystysgrif ei hun. Dwi angen awdurdodiad defnyddiwr ubuntu ymhen 10 munud. Gallwch chi ei wneud eich ffordd.
$ ssh-keygen -s sk-user-ca -I test-key -n ubuntu -V -5m:+5m emergency
Gofynnir i chi lofnodi'r dystysgrif gan ddefnyddio'ch olion bysedd. Gallwch ychwanegu enwau defnyddwyr ychwanegol wedi'u gwahanu gan atalnodau, er enghraifft -n ubuntu, carl, ec2-user
Dyna ni, nawr mae gennych chi dystysgrif! Nesaf mae angen i chi nodi'r caniatâd cywir:
$ chmod 600 emergency-cert.pub
Ar ôl hyn, gallwch weld cynnwys eich tystysgrif:
$ step ssh inspect emergency-cert.pub
Dyma sut olwg sydd ar fy un i:
emergency-cert.pub
Type: [email protected] user certificate
Public key: ECDSA-CERT SHA256:EJSfzfQv1UK44/LOKhBbuh5oRMqxXGBSr+UAzA7cork
Signing CA: SK-ECDSA SHA256:kLJ7xfTTPQN0G/IF2cq5TB3EitaV4k3XczcBZcLPQ0E
Key ID: "test-key"
Serial: 0
Valid: from 2020-06-24T16:53:03 to 2020-06-24T17:03:03
Principals:
ubuntu
Critical Options: (none)
Extensions:
permit-X11-forwarding
permit-agent-forwarding
permit-port-forwarding
permit-pty
permit-user-rc
Yma, yr allwedd gyhoeddus yw'r allwedd argyfwng a grëwyd gennym, ac mae sk-user-ca yn gysylltiedig â'r awdurdod ardystio.
Yn olaf, rydym yn barod i redeg y gorchymyn SSH:
$ ssh -i emergency ubuntu@my-hostname
ubuntu@my-hostname:~$
- Gallwch nawr greu tystysgrifau ar gyfer unrhyw ddefnyddiwr ar westeiwr sy'n ymddiried yn eich awdurdod tystysgrif.
- Gallwch gael gwared ar argyfwng. Gallwch arbed sk-user-ca, ond nid oes angen i chi wneud hynny gan ei fod hefyd ar yr allwedd ddiogelwch. Efallai y byddwch hefyd am dynnu'r allwedd gyhoeddus PEM wreiddiol o'ch gwesteiwr (er enghraifft yn ~/.ssh/authorized_keys ar gyfer y defnyddiwr ubuntu) os gwnaethoch ei ddefnyddio ar gyfer mynediad brys.
Mynediad Brys: Cynllun Gweithredu
Gludwch yr allwedd ddiogelwch a rhedeg y gorchymyn:
$ ssh-add -K
Bydd hyn yn ychwanegu allwedd gyhoeddus yr awdurdod tystysgrif a disgrifydd allwedd i'r asiant SSH.
Nawr allforio'r allwedd gyhoeddus i wneud tystysgrif:
$ ssh-add -L | tail -1 > sk-user-ca.pub
Creu tystysgrif gyda dyddiad dod i ben o, er enghraifft, dim mwy nag awr:
$ ssh-keygen -t ecdsa -f emergency
$ ssh-keygen -Us sk-user-ca.pub -I test-key -n [username] -V -5m:+60m emergency
$ chmod 600 emergency-cert.pub
Ac yn awr SSH eto:
$ ssh -i emergency username@host
Os yw'ch ffeil .ssh/config yn achosi rhai problemau wrth gysylltu, gallwch redeg ssh gyda'r opsiwn -F dim i'w osgoi. Os oes angen i chi anfon tystysgrif at gydweithiwr, yr opsiwn hawsaf a mwyaf diogel yw
Yr hyn rwy'n ei hoffi am y dull hwn yw'r gefnogaeth caledwedd. Gallwch roi eich allweddi diogelwch mewn sêff ac ni fyddant yn mynd i unrhyw le.
Ar Hawliau Hysbysebu
Gweinyddion epig - A yw
Ffynhonnell: hab.com