Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄Π»Ρ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Ρ
ΠΎΡΡΠ°ΠΌ SSH, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ², ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ. ΠΡ Π±ΡΠ΄Π΅ΠΌ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ SSH Π΄Π»Ρ Π½Π°ΡΠΈΡ
Ρ
ΠΎΡΡΠΎΠ² Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΠΊΠ»ΡΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ° ΡΡ
Π΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° Π»ΡΠ±ΠΎΠΌ OpenSSH, Π²ΠΊΠ»ΡΡΠ°Ρ SSH Ρ Π΅Π΄ΠΈΠ½ΡΠΌ Π²Ρ
ΠΎΠ΄ΠΎΠΌ.
ΠΠ°ΡΠ΅ΠΌ Π²ΡΡ ΡΡΠΎ? ΠΡ, ΡΡΠΎ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ. ΠΡΠΎ Π±ΡΠΊΠ΄ΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ.
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΡ
/ Π·Π°ΠΊΡΡΡΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°?
- Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΡΠΊΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 1 ΠΌΠΈΠ½ΡΡΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ 5 ΡΠ΅ΠΊΡΠ½Π΄. ΠΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΡΠ°Π½Π΅Ρ Π½Π΅ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°.
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΡΠ²ΠΎΠΈΡ Ρ ΠΎΡΡΠ°Ρ ΠΈ ββΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΡ Β«ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠ΅Β» ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ.
Π§ΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ
- ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ.
Π Π΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ β ΡΡΠΎ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»ΡΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Ρ Π±ΡΠΊΠ²Π΅Π½Π½ΠΎ-ΡΠΈΡΡΠΎΠ²ΡΠΌ PIN-ΠΊΠΎΠ΄ΠΎΠΌ. ΠΡΠΊΡΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈΠ· ΠΊΠ»ΡΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ β Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠΌ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΈΠΌΠ΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, USB-ΠΊΠ»ΡΡΠΈ ΡΠ΅ΡΠΈΠΈ Yubikey 5. ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Ρ ΠΎΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡ, Π½ΠΎ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. - ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ.
- OpenSSH Π²Π΅ΡΡΠΈΠΈ 8.2 ΠΈΠ»ΠΈ Π²ΡΡΠ΅ Π½Π° Π²Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΡΡΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ. Ubuntu 20.04 ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ OpenSSH 8.2.
- (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ) Π‘ΡΠ΅Π΄ΡΡΠ²ΠΎ CLI Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ².
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΠΊΠ»ΡΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΡΠ°Π²ΡΡΠ΅ ΠΊΠ»ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅:
$ ssh-keygen -t ecdsa-sk -f sk-user-ca -O resident -C [security key ID]
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (-C) Ρ ΡΠΊΠ°Π·Π°Π» [email protected], ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°Π±ΡΡΡ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΊΠ»ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΡΠΎΡ ΡΠ΅Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΠΎΠΌΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° ΠΊ Yubikey, Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄Π²Π° ΡΠ°ΠΉΠ»Π°:
- sk-user-ca, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ, Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² ΠΊΠ»ΡΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ,
- sk-user-ca.pub, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π½ΡΡΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Π½Π° Yubikey Ρ ΡΠ°Π½ΠΈΡΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΡ Π²ΡΡ Π½Π°Π΄ΡΠΆΠ½ΠΎ.
ΠΠ° Ρ ΠΎΡΡΠ°Ρ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ (Π΅ΡΠ»ΠΈ Π΅ΡΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ) Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ SSHD (/etc/ssh/sshd_config) ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
TrustedUserCAKeys /etc/ssh/ca.pub
ΠΠ°ΡΠ΅ΠΌ Π½Π° Ρ ΠΎΡΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ (sk-user-ca.pub) Π² /etc/ssh/ca.pub
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π΄Π΅ΠΌΠΎΠ½:
# /etc/init.d/ssh restart
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Ρ ΠΎΡΡΡ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ:
$ ssh-keygen -t ecdsa -f emergency
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ SSH-ΠΏΠ°ΡΡ
ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊ ΠΈ ΡΡΠ½Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠ°ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ / Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ. ΠΠΎ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΠ°ΡΡ Β«ΡΠΊΡΡΡΠ΅Π½Π½ΡΡ Β» ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ΄Π°Π΄ΠΈΠΌ ΡΠ΅Π±Π΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΠ°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΡ, Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΠΌΠ΅Π½ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π²ΡΡ Π΅ΡΡ ΠΆΠΈΠ²-Π·Π΄ΠΎΡΠΎΠ². ΠΡΠΎ ΠΏΡΠΎΠΊΠ°ΡΡΠ²Π°Π΅Ρ Π΄Π°ΠΆΠ΅ Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌΠΈ. Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΊΠ»ΡΡΠΈ.
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΠ½Π΅ Π½ΡΠΆΠ½Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ubuntu Π² 10-ΠΌΠΈΠ½ΡΡΠ½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ.
$ ssh-keygen -s sk-user-ca -I test-key -n ubuntu -V -5m:+5m emergency
ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠ° ΠΏΠ°Π»ΡΡΠ΅Π². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΡΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, -n ubuntu,carl,ec2-user
ΠΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Π°Ρ Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ! ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ:
$ chmod 600 emergency-cert.pub
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°:
$ step ssh inspect emergency-cert.pub
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΌΠΎΠΉ:
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
ΠΠ΄Π΅ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ β ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π°ΠΌΠΈ ΠΊΠ»ΡΡ emergency, Π° Ρ ΡΠ΅Π½ΡΡΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½ sk-user-ca.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SSH:
$ ssh -i emergency ubuntu@my-hostname
ubuntu@my-hostname:~$
- Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Ρ ΠΎΡΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ²Π΅ΡΡΠ΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΡΠ΅Π½ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ emergency. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ sk-user-ca, Π½ΠΎ Π²Π°ΠΌ ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΊΠ»ΡΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ PEM ΡΠΎ ΡΠ²ΠΎΠΈΡ Ρ ΠΎΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ~/.ssh/authorized_keys Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ubuntu), Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠΊΡΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠΊΡΡΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ: ΠΏΠ»Π°Π½ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
ΠΡΡΠ°Π²ΡΡΠ΅ ΠΊΠ»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ ssh-add -K
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΡΠ΅Π½ΡΡΠ° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠ»ΡΡΠ° Π² SSH-Π°Π³Π΅Π½Ρ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ:
$ ssh-add -L | tail -1 > sk-user-ca.pub
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠΎ ΡΡΠΎΠΊΠΎΠΌ Π³ΠΎΠ΄Π½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠ°:
$ 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
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²Π½ΠΎΠ²Ρ SSH:
$ ssh -i emergency username@host
ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ°ΠΉΠ» .ssh/config Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ssh Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -F none, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π½Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΊΠΎΠ»Π»Π΅Π³Π΅, ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΡΠΎ
Π§ΡΠΎ ΠΌΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, ΡΠ°ΠΊ ΡΡΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠ»ΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΡΠ΅ΠΉΡ, ΠΈ ΠΎΠ½ΠΈ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π΅Π½ΡΡΡΡ.
ΠΠ° ΠΏΡΠ°Π²Π°Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΡ
ΠΠΏΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ β ΡΡΠΎ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com