SSH เจฒเจˆ เจฆเฉ‹-เจ•เจพเจฐเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ

"เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจธเจผเฉˆเฉฑเจฒ" SSH เจฎเฉ‡เจœเจผเจฌเจพเจจเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจ‡เฉฑเจ• เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจจเฉˆเจ•เจธเจผเจจ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจนเฉˆ, เจฎเจฟเจ†เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉ‹เจฐเจŸ 22 (เจœเจฟเจธ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจฌเจฟเจนเจคเจฐ เจนเฉˆ) เจคเฉ‹เจ‚ เจตเฉฑเจงเฅค SSH เจ•เจฒเจพเจ‡เฉฐเจŸ เจ…เจคเฉ‡ SSH เจธเจฐเจตเจฐ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจนเจจเฅค เจฒเจ—เจญเจ— เจ•เฉ‹เจˆ เจตเฉ€ เจนเฉ‹เจฐ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ SSH เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฏเจพเจจเฉ€ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ 'เจคเฉ‡ เจฐเจฟเจฎเฉ‹เจŸ เจคเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ•เจฟเจธเฉ‡ เจเจจเจ•เฉเจฐเจฟเจชเจŸเจก เจšเฉˆเจจเจฒ 'เจคเฉ‡ เจ†เจกเฉ€เจ“ เจœเจพเจ‚ เจตเฉ€เจกเฉ€เจ“ เจธเจŸเฉเจฐเฉ€เจฎ เจจเฉ‚เฉฐ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ†เจฆเจฟเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฐเจฟเจฎเฉ‹เจŸ เจนเฉ‹เจธเจŸ 'เจคเฉ‡ SOCKS เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจฐเจพเจนเฉ€เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฐเจฟเจฎเฉ‹เจŸ เจนเฉ‹เจธเจŸ เจฆเฉ€ เจคเจฐเจซเฉ‹เจ‚ เจนเฉ‹เจฐ เจฎเฉ‡เจœเจผเจฌเจพเจจเจพเจ‚ เจจเจพเจฒ เจœเฉเฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจ‡เฉฑเจ• เจชเจพเจธเจตเจฐเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจชเจฐ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ…เจคเฉ‡ เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเจธเจผเจพเจธเจ• เจฐเจตเจพเจ‡เจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ SSH เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจนเฉˆ เจ•เจฟ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เฉเฉฐเจœเฉ€ เจšเฉ‹เจฐเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ‡เฉฑเจ• เจ—เฉเจชเจคเจ•เฉ‹เจก เจœเฉ‹เฉœเจจเจพ เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เฉเฉฐเจœเฉ€ เจฆเฉ€ เจšเฉ‹เจฐเฉ€ เจคเฉ‹เจ‚ เจฌเจšเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจชเจฐ เจ…เจญเจฟเจ†เจธ เจตเจฟเฉฑเจš, เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฃ เจ…เจคเฉ‡ เจ•เฉˆเจธเจผ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡, เจ‰เจน เจ…เจœเฉ‡ เจตเฉ€ เจชเฉเจธเจผเจŸเฉ€ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ. เจฆเฉ‹-เจ•เจพเจฐเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจฆเฉ‹-เจ•เจพเจฐเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆ

เจนเจจเฉ€เจ•เฉŒเจ‚เจฌ เจฆเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‡ เจนเจพเจฒ เจนเฉ€ เจตเจฟเฉฑเจš เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจนเฉˆ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจจเจฟเจฐเจฆเฉ‡เจธเจผ, เจ•เจฒเจพเจ‡เฉฐเจŸ เจ…เจคเฉ‡ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจขเฉเจ•เจตเฉ‡เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจนเจฟเจฆเจพเจ‡เจคเจพเจ‚ เจ‡เจน เจฎเฉฐเจจเจฆเฉ€เจ†เจ‚ เจนเจจ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ (เจฌเฉเจœ) เจฒเจˆ เจ‡เฉฑเจ• เจ–เจพเจธ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจนเฉ‹เจธเจŸ เจ–เฉเฉฑเจฒเฉเจนเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ เจฐเจพเจนเฉ€เจ‚ เจฒเฉˆเจชเจŸเจพเจชเจพเจ‚ เจœเจพเจ‚ เจ•เฉฐเจชเจฟเจŠเจŸเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เจธ เจนเฉ‹เจธเจŸ เจจเจพเจฒ เจœเฉเฉœเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจธเจฅเจฟเจค เจนเฉ‹เจฐ เจธเจพเจฐเฉ€เจ†เจ‚ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค 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 เจชเฉเจฐเจฎเจพเจฃเจ•, Authy, Duo, Lastpass, เจ‡เฉฐเจธเจŸเจพเจฒ brew install oath-toolkit เจœ apt install oathtool openssl, เจซเจฟเจฐ เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจฌเฉ‡เจธ 16 เจธเจคเจฐ (เจ•เฉเฉฐเจœเฉ€) เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจธเจจเฉ‚เฉฐ เจฌเฉ‡เจธ 32 เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเจฟเจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฎเฉ‹เจฌเจพเจˆเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจ†เจฏเจพเจค เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจคเฉเจธเฉ€เจ‚ Bastion เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจธ เจจเฉ‚เฉฐ เจนเฉเจฃ เจจเจพ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ—เฉเจชเจคเจ•เฉ‹เจก เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจธเจ—เฉ‹เจ‚ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฒเจˆ เจ‡เฉฑเจ• OTP เจ•เฉ‹เจก เจฆเฉ€ เจตเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

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

เจฆเฉ‚เจœเจพ เจตเจฟเจ•เจฒเจช เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจนเฉˆ

เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจนเจฐ เจตเจพเจฐ OTP เจ•เฉ‹เจก เจฆเจพเจ–เจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฆเฉ‚เจœเจพ เจ•เจพเจฐเจ• เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจกเจฟเจตเจพเจˆเจธ เจœเจพเจ‚ เจฌเจพเจ‡เจ“เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฌเจฃ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ เจธเจผเฉˆเฉฑเจซ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจฅเฉ‹เฉœเจพ เจนเฉ‹เจฐ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เจฒเจพเจ‡เฉฐเจŸ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ OS 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจชเจฐ เจธเจพเจฐเฉ‡ เจชเฉœเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, MacOS 'เจคเฉ‡ เจ•เจฒเจพเจ‡เฉฐเจŸ เจชเจพเจธเจซเจฐเฉ‡เจœ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจคเฉ‡ เจธเฉˆเจ‚เจธเจฐ (เจฆเฉ‚เจœเจพ เจ•เจพเจฐเจ•) 'เจคเฉ‡ เจ‰เจ‚เจ—เจฒ เจฐเฉฑเจ– เจ•เฉ‡ SSH เจตเจฟเฉฑเจš เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ€ เจชเฉเจธเจผเจŸเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

iOS เจ…เจคเฉ‡ Android เจฎเจพเจฒเจ• เจฒเฉŒเจ—เจ‡เจจ เจฆเฉ€ เจชเฉเจธเจผเจŸเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ†เจชเจฃเฉ‡ เจธเจฎเจพเจฐเจŸเจซเฉ‹เจจ 'เจคเฉ‡ เจ‡เฉฑเจ• เจฌเจŸเจจ เจฆเจฌเจพ เจ•เฉ‡. เจ‡เจน Krypt.co เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเจ•เจจเฉ€เจ• เจนเฉˆ, เจœเฉ‹ OTP เจคเฉ‹เจ‚ เจตเฉ€ เจœเจผเจฟเจ†เจฆเจพ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจนเฉˆเฅค

Linux/ChromeOS 'เจคเฉ‡ YubiKey USB เจŸเฉ‹เจ•เจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเจพ เจตเจฟเจ•เจฒเจช เจนเฉˆเฅค เจฌเฉ‡เจธเจผเฉฑเจ•, เจ‡เฉฑเจ• เจนเจฎเจฒเจพเจตเจฐ เจคเฉเจนเจพเจกเจพ เจŸเฉ‹เจ•เจจ เจšเฉ‹เจฐเฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‰เจน เจ…เจœเฉ‡ เจตเฉ€ เจชเจพเจธเจซเจฐเฉ‡เจœเจผ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเจพ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹