αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž–αžΈαžšαž€αžαŸ’αžαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ SSH

β€œαžŸαŸ‚αž›αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–β€ SSH αž‚αžΊαž‡αžΆαž–αž·αž’αžΈαž€αžΆαžšαž”αžŽαŸ’αžαžΆαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžšαžœαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž›αžΎαž…αŸ’αžšαž€ 22 (αžŠαŸ‚αž›αž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš)αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ SSH αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ SSH αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αŸ” αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž–αž·αž’αžΈαž€αžΆαžšαž”αžŽαŸ’αžαžΆαž‰αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ SSH αž–αŸ„αž›αž‚αžΊαž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαž–αžΈαž…αž˜αŸ’αž„αžΆαž™αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž”αž‰αŸ’αž‡αžΌαž“αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž’αžΌαžŒαžΈαž™αŸ‰αžΌ αž¬αžœαžΈαžŠαŸαž’αžΌαžαžΆαž˜αž†αžΆαž“αŸ‚αž›αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αŸ”αž›αŸ” αž€αŸ’αžšαŸ…αž–αžΈαž“αŸαŸ‡ αžαžΆαž˜αžšαž™αŸˆαž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈ SOCKS αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž–αžΈαž…αž˜αŸ’αž„αžΆαž™ αž’αŸ’αž“αž€αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž–αžΈαž…αž˜αŸ’αž„αžΆαž™αž“αŸαŸ‡αŸ”

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

αžšαž”αŸ€αž”αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž–αžΈαžšαž€αžαŸ’αžαžΆ

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

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž”αžΎαž€αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž (αž”αž“αŸ’αž‘αžΆαž™)αŸ” αž’αŸ’αž“αž€αž…αž„αŸ‹αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αŸαŸ‡αž–αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ αž¬αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžαžΆαž˜αžšαž™αŸˆαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž αžΎαž™αž…αžΌαž›αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžœαžΆαŸ” 2FA αž’αžΆαž“αžΆαžαžΆαž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž˜αž·αž“αž’αžΆαž…αž’αŸ’αžœαžΎαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž‘αŸ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž–αž½αž€αž‚αŸαž…αžΌαž›αž”αŸ’αžšαžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸαžŠαŸ„αž™ αž§αž‘αžΆαž αžšαžŽαŸαžŠαŸ„αž™αžŠαŸ†αž‘αžΎαž„αž˜αŸαžšαŸ„αž‚αŸ”

αž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ†αž”αžΌαž„αž‚αžΊ OTP

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

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

  • metadata.rb
  • attributes/default.rb (αž“αŸƒ attributes.rb)
  • files/sshd
  • recipes/default.rb (αž…αž˜αŸ’αž›αž„αž–αžΈ recipe.rb)
  • templates/default/users.oath.erb

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ OTP αžŽαžΆαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αž’αžαž·αžαž·αž‡αž“αŸ– Google Authenticator, Authy, Duo, Lastpass, αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ brew install oath-toolkit ឬ apt install oathtool opensslαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžš base16 αž…αŸƒαžŠαž“αŸ’αž™ (key) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αŸ…αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹ Base32 αžŠαŸ‚αž›αž’αŸ’αž“αž€αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž”αŸ’αžšαžΎ αž“αž·αž„αž“αžΆαŸ†αž…αžΌαž›αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

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

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΈαž–αžΈαžšαž‚αžΊαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž·αž“αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž”αž‰αŸ’αž…αžΌαž›αž€αžΌαžŠ OTP αžšαžΆαž›αŸ‹αž–αŸαž›αž“αŸ„αŸ‡αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡αž€αžαŸ’αžαžΆαž‘αžΈαž–αžΈαžšαž€αŸ’αž›αžΆαž™αž‡αžΆαž§αž”αž€αžšαžŽαŸαžšαžΉαž„ αž¬αž‡αžΈαžœαž˜αžΆαžαŸ’αžšαŸ”

αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αŸαž…αž»αž„αž—αŸ…αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαž·αž… αž αžΎαž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αžαž·αžαž·αž‡αž“αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αž‰αŸ’αž…αž”αŸ‹αž‡αŸ†αž αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž’αžαž·αžαž·αž‡αž“αž“αŸ…αž›αžΎ MacOS αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ SSH αžŠαŸ„αž™αž”αŸ’αžšαžΎαžƒαŸ’αž›αžΆαžŸαž˜αŸ’αž„αžΆαžαŸ‹ αž“αž·αž„αžŠαžΆαž€αŸ‹αž˜αŸ’αžšαžΆαž˜αžŠαŸƒαž›αžΎαž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αžŸαž‰αŸ’αž‰αžΆ (αž€αžαŸ’αžαžΆαž‘αžΈαž–αžΈαžš)αŸ”

αž˜αŸ’αž…αžΆαžŸαŸ‹ iOS αž“αž·αž„ Android αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αžΆαžšαž…αžΌαž› αžŠαŸ„αž™αž…αž»αž…αž”αŸŠαžΌαžαž»αž„αž˜αž½αž™αž“αŸ…αž›αžΎαžŸαŸ’αž˜αžΆαžαž αŸ’αžœαžΌαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”. αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž–αž·αžŸαŸαžŸαž–αžΈ Krypt.co αžŠαŸ‚αž›αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‡αžΆαž„ OTP αŸ”

αž“αŸ…αž›αžΎ Linux/ChromeOS αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ YubiKey USB tokensαŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž’αžΆαž…αž›αž½αž…αžŸαž‰αŸ’αž‰αžΆαžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αžΆαžαŸ‹αž“αŸ…αžαŸ‚αž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹αžƒαŸ’αž›αžΆαžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ”

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

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