ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΡΡΡ
ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π²ΡΠΏΡΡΠΊΠ΅ OpenSSH 8.2 ΡΡΠ°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π²ΡΡ
ΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»
ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡΠΈΠΌΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π² OpenSSH Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΊΠ»ΡΡΠ΅ΠΉ «ecdsa-sk» ΠΈ «ed25519-sk», Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ECDSA ΠΈ Ed25519, Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Ρ
ΡΡΠ΅ΠΌ SHA-256. ΠΡΠΎΡΠ΅Π΄ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ PKCS#11 ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π²ΡΠ·ΠΊΠΎΠΉ Π½Π°Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ
ΠΠ»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «SecurityKeyProvider» ΠΈΠ»ΠΈ Π²ΡΡΡΠ°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ SSH_SK_PROVIDER, ΡΠΊΠ°Π·Π°Π² ΠΏΡΡΡ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠ±ΠΎΡΠΊΠ° openssh ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ-ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ (—with-security-key-builtin), Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «SecurityKeyProvider=internal».
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ «ssh-keygen -t ecdsa-sk» ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡΠΈ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ «ssh». ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ssh-keygen ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΠΏΠ°ΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π° Π² «~/.ssh/id_ecdsa_sk» ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠ»ΡΡΠ°ΠΌ.
ΠΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ (id_ecdsa_sk.pub) ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π² ΡΠ°ΠΉΠ» authorized_keys. ΠΠ° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ, Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ libsk-libfido2, Π½ΠΎ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΈΠΏ ΠΊΠ»ΡΡΠ΅ΠΉ «ecdsa-sk»). Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ (id_ecdsa_sk) ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠΌ ΠΊΠ»ΡΡΠ°, ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠΌ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠΎΠΊΠ΅Π½Π° U2F. Π ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ° id_ecdsa_sk Π² ΡΡΠΊΠΈ Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ, Π΄Π»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌΡ ΡΠΎΠΊΠ΅Π½Ρ, Π±Π΅Π· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΠΉ Π² ΡΠ°ΠΉΠ»Π΅ id_ecdsa_sk Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π΅Π½.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡΠ±ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ (ΠΊΠ°ΠΊ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ) ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΊΠΎΡΠ½ΡΡΡΡΡ ΡΠ΅Π½ΡΠΎΡΠ° Π½Π° ΡΠΎΠΊΠ΅Π½Π΅, ΡΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ Π°ΡΠ°ΠΊ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ±Π΅ΠΆΠ° Π·Π°ΡΠΈΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ Π·Π°ΠΏΡΡΠΊΠ° ssh-keygen ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠ»ΡΡΠΎΠΌ.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ OpenSSH ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Π² ΡΠ°Π·ΡΡΠ΄ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
Ρ
Π΅ΡΠΈ SHA-1, Π² ΡΠ²ΡΠ·ΠΈ Ρ
ΠΠ»Ρ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π² OpenSSH Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠΏΡΡΠΊΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° UpdateHostKeys, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄ΡΠΆΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. Π‘ΡΠ΅Π΄ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΏΠΎΠΌΡΠ½ΡΡΡ rsa-sha2-256/512 Π½Π° Π±Π°Π·Π΅ RFC8332 RSA SHA-2 (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ OpenSSH 7.2 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), ssh-ed25519 (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ OpenSSH 6.5) ΠΈ ecdsa-sha2-nistp256/384/521 Π½Π° Π±Π°Π·Π΅ RFC5656 ECDSA (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ OpenSSH 5.7).
Π Π²Π΅ΡΡΠΈΠΈ OpenSSH 8.2 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ «ssh-rsa» ΠΏΠΎΠΊΠ° ΠΎΡΡΠ°Π²Π»Π΅Π½Π°, Π½ΠΎ Π΄Π°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΄Π°Π»ΡΠ½ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° CASignatureAlgorithms, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π°Π»Π³ΡΠΈΡΠΌΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠ΄Π°Π»ΡΠ½ Π°Π»Π³ΠΎΡΠΈΡΠΌ diffie-hellman-group14-sha1. ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ SHA-1 Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°Ρ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΎ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΠΈΡΠΊ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ Π΄Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ Π°ΡΠ°ΠΊΠΈ Π½Π° Ρ ΠΎΡΡΠΎΠ²ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (LoginGraceTime).
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ssh-keygen ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ rsa-sha2-512, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ OpenSSH 7.2, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², Π·Π°Π²Π΅ΡΠ΅Π½Π½ΡΡ Π² OpenSSH 8.2, Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ Π²ΡΠΏΡΡΠΊΠ°ΠΌΠΈ OpenSSH (Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ «ssh-keygen -t ssh-rsa» ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ecdsa-sha2-nistp256/384/521, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Ρ OpenSSH 5.7).
ΠΡΡΠ³ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- Π sshd_config Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Include, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (ΠΏΡΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ glob-ΠΌΠ°ΡΠΎΠΊ);
- Π ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «no-touch-required», ΠΎΡΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΎΠΊΠ΅Π½Ρ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ°;
- Π sshd_config Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° PubkeyAuthOptions, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠ»ΡΡΠ°ΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π°Π³ «no-touch-required» Π΄Π»Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΡ ΠΏΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΎΠΊΠ΅Π½Π°. ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Π² ΡΠ°ΠΉΠ» authorized_keys Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «no-touch-required»;
- Π ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «-O write-attestation=/path», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ FIDO ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ. OpenSSH ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π½ΠΎ ΠΎΠ½ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° Π² Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΌ Π΄ΠΎΠ²Π΅ΡΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅;
- Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ssh ΠΈ sshd ΡΠ΅ΡΠ΅Π· Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ IPQoS ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΡΠΈΠΎΡΠΈΡΠ΅Π·Π°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΠΊΠ°
LE DSCP (Lower-Effort Per-Hop Behavior); - Π ssh ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ «AddKeysToAgent=yes», Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Ρ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ssh-agent c ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»ΡΡΡ. Π
ssh-keygen ΠΈ ssh-agent Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΠΊΠ»ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΊΠΈ PKCS#11 ΠΈ ΠΈΠΌΡ ΡΡΠ±ΡΠ΅ΠΊΡΠ° X.509 Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΡΠΈ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅; - Π ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠ° PEM Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ DSA ΠΈ ECDSA;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ssh-sk-helper, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΎΠΊΠ΅Π½Π°ΠΌ FIDO/U2F;
- Π ssh ΠΈ sshd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ «—with-zlib» Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ zlib;
- Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ RFC4253 Π² Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π±Π°Π½Π½Π΅ΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ ΠΏΠΎΠΊΠ°Π· ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ·-Π·Π° ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ Π»ΠΈΠΌΠΈΡΠΎΠ² MaxStartups. ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° sshd, Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΈΠ»ΠΈΡΡ ps, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π»ΠΈΠΌΠΈΡΠ° MaxStartups;
- Π ssh ΠΈ ssh-agent ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅ΡΠ΅Π· $SSH_ASKPASS, ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ»Π°Π³ Ρ ΡΠΈΠΏΠΎΠΌ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ: «confirm» — Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ (yes/no), «none» — ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, «blank» — Π·Π°ΠΏΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ;
- Π ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΡΠΈΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ «find-principals» Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠ°ΠΉΠ»Π΅ allowed-signers ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ;
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° sshd Π² Linux ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° seccomp: Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ IPC, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ clock_gettime64(), clock_nanosleep_time64 ΠΈ clock_nanosleep().
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru