αα
αααα»αααΆααααααΆαααα ααΎαααΉααααααΎαααΈαα·αα·ααΈαααααΆααααΆαα
αΌαααααΎαααααΆαα’αΆαααααα
ααΆαααααΆαααΈα 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 α―αααΆαααΈαααΉαααααΌαααΆααααααΎααααα»αααΌαααααΆαα
- sk-user-ca αααααΆα ααα»α ααΆαααααααααα αα ααΎααα―αααααααααααΆαα»ααααα»ααααα»ααααα·ααΆαα
- 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:~$
- α₯α‘αΌαααα α’αααα’αΆα αααααΎααα·ααααΆαααααααααααΆααα’αααααααΎααααΆααααΆαα½ααα ααΎαααΆαααΈααααααΏααΆααααΎα’αΆααααΆαααα·ααααΆααααααααααα’αααα
- α’αααα’αΆα αα»αααΆααααααααααααααΆααα α’αααα’αΆα αααααΆαα»α 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 ααΎααααΈααααααΆα ααααα·αααΎα’αααααααΌαααΆαααααΎαα·ααααΆαααααααα
αα·ααααα½αααΆαααΆα αααααΎαααΆααααα½ααααα»α αα·ααα»ααααα·ααΆααααα»αααΊ
α’αααΈααααααα»αα αΌαα α·αααα’αααΈαα·ααΈααΆααααααααααΊααΆαααΆαααααααααααΉαα α’αααα’αΆα ααΆαααααα»ααααα·ααΆαααααα’ααααα αααα»ααα»ααααα·ααΆα α αΎααα½αααΆααΉααα·ααα ααΆααα
α’αααΈαα·αααα·ααααααααααΆα
αααΆαααΈααα Epic - αααβααΊααΆ
ααααα: www.habr.com