ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ экстрСнного доступа ΠΊ хостам SSH с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ

ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ экстрСнного доступа ΠΊ хостам SSH с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ

Π’ этом постС ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ для экстрСнного доступа ΠΊ хостам 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, локально Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрировано Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°:

  1. sk-user-ca, дСскриптор ΠΊΠ»ΡŽΡ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся Π½Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, хранящийся Π² ΠΊΠ»ΡŽΡ‡Π΅ бСзопасности,
  2. 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:~$

  1. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сСртификаты для любого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° хостС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ довСряСт Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ сСртификации.
  2. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ 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, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π½Π΅Π³ΠΎ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сСртификат ΠΊΠΎΠ»Π»Π΅Π³Π΅, самый простой ΠΈ бСзопасный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” это Magic Wormhole. Для этого понадобится всСго Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° β€” Π² нашСм случаС это emergency ΠΈ emergency-cert.pub.

Π§Ρ‚ΠΎ ΠΌΠ½Π΅ нравится Π² этом ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅, Ρ‚Π°ΠΊ это аппаратная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ бСзопасности Π² сСйф, ΠΈ ΠΎΠ½ΠΈ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ дСнутся.

На ΠΏΡ€Π°Π²Π°Ρ… Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹

Π­ΠΏΠΈΡ‡Π½Ρ‹Π΅ сСрвСры β€” это Π΄Π΅ΡˆΡ‘Π²Ρ‹Π΅ VPS с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ процСссорами ΠΎΡ‚ AMD, частота ядра CPU Π΄ΠΎ 3.4 GHz. Максимальная конфигурация позволяСт Ρ€Π΅ΡˆΠΈΡ‚ΡŒ практичСски Π»ΡŽΠ±Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ β€” 128 ядСр CPU, 512 Π“Π‘ RAM, 4000 Π“Π‘ NVMe. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ!

ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ экстрСнного доступа ΠΊ хостам SSH с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com