á€ááá¯á·á
áºááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá¬á·ááºáá²áá¯á¶ááŒá¯á¶áá±ážáá±á¬á·áá»á¬ážááᯠá¡á±á¬á·ááºááá¯ááºážáá¯á¶ážá SSH host áá»á¬ážááá¯á· á¡áá±ážáá±á«áºáááºáá±á¬ááºááœáá·áºá¡ááœáẠáá¯ááºáá¯á¶ážáá¯ááºáááºážááᯠááŒá¯á
á¯áá«áááºá á€áááºááŸá¬ áá»ááºážáááºáááºážáá
áºáá¯áá»áŸáá¬ááŒá
áºááŒá®áž ááá·áºááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áºááá¯ááºáá®á¡á±á¬áẠááá¯ááºáá»á±á¬áá®ááœá±ááŒá
áºá
á±ááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áá¡áááºááŸááºáá»á¬ážá¡ááœáẠSSH áááºááŸááºá¡ááœáá·áºá¡á¬áá¬ááᯠáá¬á·ááºáá²áá¯á¶ááŒá¯á¶áá±ážáá®ážááœáẠááááºážáááºážáá«áááºá á€á¡á
á®á¡á
á¥áºááẠSSH á¡áá«á¡ááẠOpenSSH ááá¯ááºážáá®ážáá«ážááœáẠáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá
áºáááºá
áá«ááœá±á¡á¬ážáá¯á¶ážá áá¬á¡ááœááºáá²á áá±á¬ááºážááŒá®á áá«á áá±á¬ááºáá¯á¶ážááœá±ážáá»ááºááŸá¯áá
áºáá¯áá«á á¡ááŒá±á¬ááºážáá
áºáá¯áá¯ááŒá±á¬áá·áº á¡ááŒá¬ážáááºááá·áºá¡áá¬áá»áŸ á¡áá¯ááºááá¯ááºáá±á¬á¡áá«ááœáẠá€á¡áá¬ááẠááá·áºáá¬áá¬ááá¯á· áááºáá±á¬ááºááœáá·áºáááŸáá
á±ááá·áº backdoor áá
áºáá¯ááŒá
áºáááºá
á¡áá±ážáá±á«áºá¡áá¯á¶ážááŒá¯ááœáá·áºá¡ááœáẠá¡áá»á¬ážáá°ááŸá¬/áá¯áá¹áááááá±á¬á·áá»á¬ážá¡á
á¬áž áááºááŸááºáá»á¬ážááᯠá¡áááºááŒá±á¬áá·áºá¡áá¯á¶ážááŒá¯ááááºážá
- á¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá»á¬ážááŸáá·áºááá°áá²á áááºááŸááºáá»á¬ážááẠá¡ááœááºááá¯áá±á¬ááºážáá±á¬ áááºáááºážááŸááááºá áááºááẠ1 áááá Ạááá¯á·ááá¯áẠ5 á áá¹ááá·áºááẠáááºáááºážááŸááá±á¬ áááºááŸááºááᯠáá¯ááºáá±ážááá¯ááºáááºá á€áá¬áááŒá®ážáá±á¬ááºá áá»áááºáááºááŸá¯á¡áá áºá¡ááœáẠáááºááŸááºááẠá¡áá¯á¶ážáááŒá¯ááá¯ááºáá±á¬á·áá«á áááºážááẠá¡áá±ážáá±á«áºá¡áá¯á¶ážááŒá¯ááẠá á¶ááŒááŒá áºáááºá
- ááá·áºá¡áááºááŸááºáá»á¬ážááŸá áááºááá·áºá¡áá±á¬áá·áºá¡ááœááºáááᯠáááºááŸááºáá áºáá¯áááºáá®ážááá¯ááºááŒá®áž ááá¯á¡ááºáá«á ááá¯áá²á·ááá¯á·áá±á¬ âáá áºááŒáááºáááºážâ áááºááŸááºáá»á¬ážááᯠáá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážáᶠáá±ážááá¯á·ááá¯ááºáá«áááºá
áááºááá¯á¡ááºáá«ááááºá·áááºá¡ááá»ááá¯á·
- áá±ááá¯ááºáá°áá®ážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááá·áº áá¬á·ááºáá²áá¯á¶ááŒá¯á¶áá±ážáá®ážáá»á¬ážá
áá±ááá¯ááºáá°áá®ážáá»á¬ážááẠáá¯á¶ááŒá¯á¶áá±ážáá±á¬á·á¡ááœááºáž áá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬áž ááááºážáááºážáá¬ážááá·áº áá»áŸáá¯á·ááŸááºáááºá¹áá±ááá»á¬ážááŒá áºáááºá áá áºáá«áá áºáᶠáááºážááá¯á·ááᯠá¡áá¹ááá¬ááááºáž PIN ááŒáá·áº áá¬ááœááºáá¬ážáááºá áá±ááá¯ááºáá°áá®ážá á¡áá»á¬ážáá°ááŸá¬ á¡á áááºá¡ááá¯ááºážááᯠáá¯á¶ááŒá¯á¶áá±ážáá±á¬á·á០áá¯ááºáá°ááá¯ááºááŒá®ážá áá®ážááá·áºáá±á¬á·áááºááá¯ááºááŒáá·áº ááœá±ážáá»ááºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá Yubikey 5 á á®ážáá®áž USB áá®ážáá»á¬ážááẠáá±ááá¯ááºáá°áá®ážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áááºážááá¯á·ááᯠáááºáá¶áááŸáááẠá¡áá±ážáá±á«áºá¡áá¯á¶ážááŒá¯áááºá¡ááœááºáᬠáááºááœááºáá¬ážááŒá±á¬ááºáž á¡ááŒá¶ááŒá¯á¡ááºáá«áááºá á€ááá¯á·á áºá¡ááœáẠáá»áœááºá¯ááºááẠáá±á¬á·áá áºáá¯áᬠá¡áá¯á¶ážááŒá¯áá«áááºá ááá¯á·áá±á¬áº á¡áááºáá°ážáááºá¡ááœáẠáá±á¬ááºáááºáá áºáᯠááŸáááá·áºáá«áááºá - ááá¯áá±á¬á·áá»á¬ážááᯠááááºážáááºážááẠáá¯á¶ááŒá¯á¶áá±á¬áá±áá¬á
- OpenSSH áá¬ážááŸááºáž 8.2 ááŸáá·áºá¡ááẠááá·áºá ááºááœááºážááœááºááŒá°áá¬ááŸáá·áº á¡áá±ážáá±á«áºá¡áá¯á¶ážááŒá¯ááœáá·áºáááá¯áá±á¬ áá¬áá¬áá»á¬ážááœááºá Ubuntu 20.04 ááẠOpenSSH 8.2 ááŒáá·áº áá±ážááá¯á·áááºá
- (ááœá±ážáá»ááºááá¯ááºáá±á¬áºáááºáž á¡ááŒá¶ááŒá¯áá¬ážáááº) áááºááŸááºáá»á¬ážááᯠá á áºáá±ážáááºá¡ááœáẠCLI áááááá¬á
áá±á·áá»ááºá·áá±áž
ááááŠážá áœá¬á áááºááẠáá¬á·ááºáá²áá¯á¶ááŒá¯á¶áá±ážáá±á¬á·áá±á«áºááœáẠáá¬ážááŸáááá·áº á¡ááá¡ááŸááºááŒá¯ á¡ááœáá·áºá¡á¬áá¬ááᯠáááºáá®ážááẠááá¯á¡ááºáááºá áá±á¬á·ááá¯ááá·áºááœááºážááŒá®áž run
$ 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 á¡áá±ááŒáá·áºá hosts ááœááºá (áááºáááá±ážáá«á) á¡á±á¬ááºáá«ááá¯á·ááᯠáááºá SSHD configuration (/etc/ssh/sshd_config) ááá¯á· ááá·áºáá«á
TrustedUserCAKeys /etc/ssh/ca.pub
ááá¯á·áá±á¬áẠhost ááœáẠá¡áá»á¬ážáá°ááŸá¬áá±á¬á· (sk-user-ca.pub) ááᯠ/etc/ssh/ca.pub ááá¯á·ááá·áºáá«á
daemon ááᯠááŒááºáááºá áááºáá«-
# /etc/init.d/ssh restart
ááá¯áá»áœááºá¯ááºááá¯á·ááẠhost ááá¯áááºáá±á¬ááºáááºááŒáá¯ážá á¬ážááá¯ááºáááºá áá«áá±ááá·áº á¡áááºáá¯á¶áž áááºááŸááºááá¯áááºá áááºááŸááºááŸáá·áºáááºá ááºááá·áº áá±á¬á·ááœá²áá áºáá¯ááᯠáááºáá®ážáá«-
$ ssh-keygen -t ecdsa -f emergency
áááºááŸááºáá»á¬ážááŸáá·áº SSH á¡ááœá²áá»á¬áž
áá áºáá«áá áºáá¶ááœáẠá¡áá»á¬ážáá°ááŸá¬/áá¯áá¹áááááá±á¬á·á¡ááœá²ááᯠá¡á á¬ážááá¯ážáááºá¡ááœáẠáááºááŸááºááᯠá¡áá¯á¶ážááŒá¯ááẠááœá²áá±á¬ááºááŸá¯ááŸááááºá ááá¯á·áá±á¬áº á¡áá¯á¶ážááŒá¯áá°áá áºáŠážá¡á¬áž á á áºááŸááºááŒá±á¬ááºážáááºáá±ááŒááẠáááºááŸááºáá áºáá¯áááºážááŸáá·áº ááá¯á¶áá±á¬ááºáá«á áááºááŸááºáá áºáá¯á á®ááœáẠáááºážááŸáá·áºáááºá ááºáá±á¬ áá®ážááá·áºáá±á¬á·áá áºáá¯áááºáž áá«ááŸááááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááá¯ááºááá¯áẠáááºááŸááºááá¯ááºáá±ážáᮠဠ"á¡áá±ážáá±á«áº" áá±á¬á·á¡ááœá²ááᯠáá¯ááºáá¯ááºááẠááá¯á¡ááºáá«áááºá á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááœáẠááá¯ááºááá¯ááºáá±á¬á·ááŸáááá·áº áá±á¬á·ááœá²ááœá²ááᯠááœáŸááºááŒááŒá®áž áááºááŸááºáá±ážááá¯ážáá¬ážáá±á¬ áááºááŸááºááᯠáá¬áá¬ááá¯á· ááŒááááºááŒá áºáááºááá«ááŒá±á¬áá·áº á¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá²ááŸááºááŸá¯áᬠááŸááºáááºááŒá®áž áá±á¬ááºážááœááºáá±áá«áá±ážáááºá áááºážááẠáááºááŸááºáá»á¬ážááŸáá·áºááẠá¡áá¯ááºáá¯ááºáááºá áááºááŸááºáá»á¬ážááẠá¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá»á¬ážááᯠááááºážáááºážááẠáá¬áá¬á¡ááœáẠááá¯á¡ááºááŸá¯ááᯠáááºááŸá¬ážáá±ážáá«áááºá
ááá¯á·áá±á¬áẠáááºááŸááºááᯠááá¯ááºááá¯ááºáááºáá®ážáá«á áá»áœááºá¯ááºááẠ10 áááá áºááŒá¬ážáá¬áááœáẠubuntu á¡áá¯á¶ážááŒá¯áá°ááœáá·áºááŒá¯áá»ááºááá¯á¡ááºáá«áááºá ááá¯áá·áºáááºážáá²á·ááá¯áẠáá¯ááºááá¯á·ááááºá
$ 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 á¡áá»á¬ážáá°ááŸá¬áá±á¬á·ááᯠááá·áºá¡áááºááŸááºáá»á¬ážá០áááºááŸá¬ážááá¯ááá¯ááºááẠ(á¥ááᬠubuntu á¡áá¯á¶ážááŒá¯áá°á¡ááœáẠ~/.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 ááá¯ááºááẠáá»áááºáááºáá¬ááœáẠááŒá¿áá¬á¡áá»áá¯á·ááᯠááŒá
áºá
á±áá«áá áááºážááᯠáá»á±á¬áºááŒááºááẠ-F none ááœá±ážáá»ááºááŸá¯ááŒáá·áº ssh ááᯠááœáá·áºááá¯ááºáááºá áá¯ááºáá±á¬áºááá¯ááºáááºáá
áºáŠážáᶠá¡ááá¡ááŸááºááŒá¯áááºááŸáẠáá±ážááá¯á·ááẠááá¯á¡ááºáá«áá á¡ááœááºáá°áá¯á¶ážááŸáá·áº á¡áá¯á¶ááŒá¯á¶áá¯á¶áž ááœá±ážáá»ááºááœáá·áºááŸá¬ ááŒá
áºáááºá
áá®áá»ááºážáááºááŸá¯áá²á·áááºáááºááŒá®áž áá»áœááºáá±á¬áºááá±á¬áá»áá¬á Hardware Support áá«á ááá·áºáá¯á¶ááŒá¯á¶áá±ážáá±á¬á·áá»á¬ážááᯠáá¯á¶ááŒá¯á¶á áœá¬áá¬ážááá¯ááºááŒá®áž áááºážááá¯á·ááẠáááºááá·áºáá±áá¬ááŸááœá¬ážáááºááá¯ááºáá«á
ááŒá±á¬áºááŒá¬á¡ááŒá áº
Epic áá¬áá¬áá»á¬áž - á
source: www.habr.com