αž™αžΎαž„αž…αŸαž‰αžœαŸαž‡αŸ’αž‡αž”αž‰αŸ’αž‡αžΆαž“αžΈαžαž·αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ SSH αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„

αž™αžΎαž„αž…αŸαž‰αžœαŸαž‡αŸ’αž‡αž”αž‰αŸ’αž‡αžΆαž“αžΈαžαž·αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ SSH αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž“αžΈαžαž·αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ SSH αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ” αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αž’αŸ’αž“αž€αž’αžΆαž…αžŸαž˜αŸ’αžšαž”αžœαžΆαž‘αŸ…αžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž™αžΎαž„αž“αžΉαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš SSH αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž›αžΎαžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ” αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ OpenSSH αžšαž½αž˜αž‘αžΆαŸ†αž„ SSH αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αžΌαž›αžαŸ‚αž˜αž½αž™αŸ”

αžαžΎαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈ? αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆ backdoor αžŠαŸ‚αž›αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αž αŸαžαž»αž•αž›αžŽαžΆαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈαžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ/αž―αž€αž‡αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“?

  • αž˜αž·αž“αžŠαžΌαž…αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž‘αŸ αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž’αžΆαž…αž˜αžΆαž“αžšαž™αŸˆαž–αŸαž›αžαŸ’αž›αžΈαž”αŸ†αž•αž»αžαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž–αžšαž™αŸˆαž–αŸαž› 1 αž“αžΆαž‘αžΈ αž¬αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚ 5 αžœαž·αž“αžΆαž‘αžΈαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžšαž™αŸˆαž–αŸαž›αž“αŸαŸ‡ αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αž˜αžΈαŸ” αž“αŸαŸ‡αž‚αžΊαž›αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž”αž“αŸ’αž‘αžΆαž“αŸ‹αŸ”
  • αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αžΈαžŽαžΆαž˜αž½αž™αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹ αžŸαžΌαž˜αž•αŸ’αž‰αžΎαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš "αž˜αŸ’αžαž„" αž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαž αžŸαŸαžœαž·αž€αŸ”

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžš

  • αžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ„αžŸαŸ’αž“αžΆαž€αŸ‹αž“αŸ…αŸ”
    αžŸαŸ„αžŸαŸ’αž“αžΆαž€αŸ‹αž“αŸ…αž‚αžΊαž‡αžΆαžŸαŸ„αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ” αž–αŸαž›αžαŸ’αž›αŸ‡αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžšαž–αžΆαžšαžŠαŸ„αž™αž›αŸαž PIN αž’αž€αŸ’αžŸαžšαž€αŸ’αžšαž˜αž›αŸαžαŸ” αž•αŸ’αž“αŸ‚αž€αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒαžŸαŸ„αžŸαŸ’αž“αžΆαž€αŸ‹αž“αŸ…αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž“αžΆαŸ†αž…αŸαž‰αž–αžΈαžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαžšαž½αž˜αž‡αžΆαž˜αž½αž™αž…αŸ†αžŽαž»αž…αž‘αžΆαž‰αžŸαŸ„αž―αž€αž‡αž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž… USB ស៊េរី Yubikey 5 αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ„αžŸαŸ’αž“αžΆαž€αŸ‹αž“αŸ…αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αžαžΆαž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž”αž„αŸ’αž αŸ„αŸ‡β€‹αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž”αŸ’αžšαžΎβ€‹αžαŸ‚β€‹αž€αžΌαž“αžŸαŸ„β€‹αž˜αž½αž™β€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž’αŸ’αž“αž€β€‹αž‚αž½αžšβ€‹αž˜αžΆαž“β€‹αž˜αž½αž™β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž‘αŸ€αžβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž”αž˜αŸ’αžšαž»αž„β€‹αž‘αž»αž€αŸ”
  • αž€αž“αŸ’αž›αŸ‚αž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαŸ„αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αŸ”
  • OpenSSH αž€αŸ†αžŽαŸ‚ 8.2 αž¬αžαŸ’αž–αžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αŸ” αž’αŸŠαžΌαž”αŸŠαž»αž“αž‘αžΌ 20.04 αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž‡αžΆαž˜αž½αž™ OpenSSH 8.2 αŸ”
  • (αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†) αž§αž”αž€αžšαžŽαŸ CLI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž·αž“αž·αžαŸ’αž™αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαŸ”

αž€αžΆαžšαžšαŸ€αž”αž…αŸ†

αžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ‚αž›αž“αžΉαž„αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž›αžΎαžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ” αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ–

$ ssh-keygen -t ecdsa-sk -f sk-user-ca -O resident -C [security key ID]

αž€αŸ’αž“αž»αž„αž“αžΆαž˜αž‡αžΆαž˜αžαž·αž™αŸ„αž”αž›αŸ‹ (-C) αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰ [αž’αŸŠαžΈαž˜αŸ‚αž›αž€αžΆαžšαž–αžΆαžš]αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αž—αŸ’αž›αŸαž…β€‹αžŸαŸ„β€‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–β€‹αžŽαžΆβ€‹αžŠαŸ‚αž›β€‹αž’αžΆαž‡αŸ’αž‰αžΆαž’αžšβ€‹αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšβ€‹αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž€αžΌαž“αžŸαŸ„αž‘αŸ… 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

αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ αž‚αžΊαž‡αžΆαžŸαŸ„αž’αžΆαžŸαž“αŸ’αž“αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž αžΎαž™ sk-user-ca αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ”

αž‘αžΈαž”αŸ†αž•αž»αžαž™αžΎαž„αžαŸ’αžšαŸ€αž˜αžšαž½αž…αžšαžΆαž›αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ SSHαŸ–


$ ssh -i emergency ubuntu@my-hostname
ubuntu@my-hostname:~$

  1. αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŽαžΆαž˜αž½αž™αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž‡αžΏαž‡αžΆαž€αŸ‹αž›αžΎαž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”
  2. αž’αŸ’αž“αž€αž’αžΆαž…αž›αž»αž”αž€αžΆαžšαžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž”αž“αŸ’αž‘αžΆαž“αŸ‹αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ sk-user-ca αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αŸ αžŠαŸ„αž™αžŸαžΆαžšαžœαžΆαž“αŸ…αž›αžΎαžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αž„αžŠαŸ‚αžšαŸ” αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž…αž„αŸ‹αž›αž»αž”αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ PEM αžŠαžΎαž˜αž…αŸαž‰αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ (αž§αž‘αžΆαž αžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„ ~/.ssh/authorized_keys αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αŸŠαžΌαž”αŸŠαž»αž“αž‘αžΌ) αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αŸ”

αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αŸ– αž•αŸ‚αž“αž€αžΆαžšαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–

Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ бСзопасности ΠΈ запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ 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 αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ†αž›αž„αžœαžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž‰αžΎαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž‘αŸ…αž˜αž·αžαŸ’αžαžšαž½αž˜αž€αžΆαžšαž„αžΆαžš αž‡αž˜αŸ’αžšαžΎαžŸαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž•αž»αž αž“αž·αž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž”αŸ†αž•αž»αžαž‚αžΊ αžŠαž„αŸ’αž€αžΌαžœαžœαŸαž‘αž˜αž“αŸ’αž. αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αžΆαž“ αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαž―αž€αžŸαžΆαžšαž–αžΈαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ - αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž”αž“αŸ’αž‘αžΆαž“αŸ‹ αž“αž·αž„αžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž”αž“αŸ’αž‘αžΆαž“αŸ‹-cert.pub αŸ”

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αžΌαž›αž…αž·αžαŸ’αžαž’αŸ†αž–αžΈαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž‚αžΊαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžŠαžΆαž€αŸ‹αžŸαŸ„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž αžΎαž™αž–αž½αž€αžœαžΆαž“αžΉαž„αž˜αž·αž“αž‘αŸ…αžŽαžΆαž‘αŸαŸ”

αž’αŸ†αž–αžΈαžŸαž·αž‘αŸ’αž’αž·αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Epic - αž“αŸαŸ‡β€‹αž‚αžΊαž‡αžΆ VPS αžαŸ„αž€ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸαž˜αžΆαž“αž’αžΆαž“αž»αž—αžΆαž–αž–αžΈ AMD αž”αŸ’αžšαŸαž€αž„αŸ‹αžŸαŸ’αž“αžΌαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌαžšαž αžΌαžαžŠαž›αŸ‹ 3.4 GHz αŸ” αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αžαž·αž”αžšαž˜αžΆαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αžŸαŸ’αž“αžΌαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌ 128, RAM 512 GB, 4000 GB NVMe αŸ” αž…αžΌαž›αžšαž½αž˜β€‹αž‡αžΆαž˜αž½αž™β€‹αž™αžΎαž„!

αž™αžΎαž„αž…αŸαž‰αžœαŸαž‡αŸ’αž‡αž”αž‰αŸ’αž‡αžΆαž“αžΈαžαž·αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αŸαž›αž˜αžΆαž“αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ SSH αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹