ืืคืืกื ืื, ื ืคืชื ื ืืื ืืืืฉื ืืืจืื ืืืืจืื SSH ืืืืฆืขืืช ืืคืชืืืช ืืืืืช ืืืืจื ืืืฆื ืื ืืงืืื. ืืืื ืจืง ืืืฉื ืืืช, ืืืชื ืืืื ืืืชืืื ืืืชื ืืฆืจืืื ืฉืื. ื ืืืกื ืืช ืจืฉืืช ืืืืฉืืจืื ืฉื SSH ืขืืืจ ืืืืจืืื ืฉืื ื ืขื ืืคืชื ืืืืืื ืฉื ืืืืืจื. ืกืืืื ืื ืชืขืืื ืืืขื ืขื ืื OpenSSH, ืืืื SSH ืขื ืื ืืกื ืืืืื.
ืืฉืืื ืื ืื ืื? ืืืื, ืื ืืคืฉืจืืช ืืืฆื ืืืจืื. ืืืื ืืืช ืืืืจืืช ืฉืชืืคืฉืจ ืื ืืงืื ืืืฉื ืืฉืจืช ืฉืื ืืืฉืจ ืืกืืื ืืืฉืื ืฉืื ืืืจ ืืืจ ืื ืขืืื.
ืืืืข ืืืฉืชืืฉ ืืชืขืืืืช ืืืงืื ืืคืชืืืช ืฆืืืืจืืื/ืคืจืืืื ืืืืฉื ืืฉืขืช ืืืจืื?
- ืื ืืืื ืืืคืชืืืช ืฆืืืืจืืื, ืืืืฉืืจืื ืืืจื ืืืื ืงืฆืจ ืืืื. ืืชื ืืืื ืืืคืืง ืืืฉืืจ ืฉืชืงืฃ ืืืงื ืืืช ืื ืืคืืื 1 ืฉื ืืืช. ืืืืจ ืชืงืืคื ืื, ืืืืฉืืจ ืื ืืืื ืฉืืืฉ ืขืืืจ ืืืืืจืื ืืืฉืื. ืื ืืืืืืื ืขืืืจ ืืืฉื ืืืจืื.
- ืืชื ืืืื ืืืฆืืจ ืืืฉืืจ ืขืืืจ ืื ืืฉืืื ืืืืจืืื ืฉืื, ืืืืืืช ืืฆืืจื ืืฉืืื ืืืฉืืจืื "ืื ืคืขืืืื" ืืืื ืืขืืืชืื.
ืื ืฉืืชื ืฆืจืื
- ืืคืชืืืช ืืืืืช ืืืืจื ืืชืืืืื ืืืคืชืืืช ืชืืฉื.
ืืคืชืืืช ืชืืฉืืื ืื ืืคืชืืืช ืงืจืืคืืืืจืคืืื ืืืืืืกื ืื ืืืืืื ืืชืื ืืคืชื ืืืืืื. ืืคืขืืื ืื ืืืื ืื ืืืืฆืขืืช 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]
ืืืขืจื (-ื) ืฆืืื ืชื [ืืืื ืืืื"ื]ืืื ืฉืื ืชืฉืื ืืืืื ืืคืชื ืืืืื ืฉืืืืช ืจืฉืืช ืืืืฉืืจืื ืืื.
ืื ืืกืฃ ืืืืกืคืช ืืืคืชื ื- Yubikey, ืฉื ื ืงืืฆืื ืืืคืงื ืืืืคื ืืงืืื:
- sk-user-ca, ืืืืช ืืคืชื ืืืชืืืืกืช ืืืคืชื ืืคืจืื ืืืืืืกื ืืืคืชื ืืืืืื,
- sk-user-ca.pub, ืฉืืืื ืืืคืชื ืืฆืืืืจื ืฉื ืจืฉืืช ืืืืฉืืจืื ืฉืื.
ืืื ืื ืืืื, ื- Yubikey ืืืืกื ืืคืชื ืคืจืื ื ืืกืฃ ืฉืื ื ืืชื ืืืืืจ. ืืื ืืื ืืืื ืืื.
ืืืืจืืื, ืืฉืืจืฉ, ืืืกืฃ (ืื ืขืืืื ืื ืขืฉืืช ืืืช) ืืช ืืืืจืื ืืืืื ืืชืฆืืจืช ื-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
ืืคืขืืื ืื ืืคืชื ืืืฉืชืืฉ ืืชืขืืื ืืชืืืืฃ ืืืื ืืคืชืืืช ืฆืืืืจื/ืคืจืื. ืืื ืืืฉืืจ ืืืื ืืื ื ืืกืคืืง ืืื ืืืืช ืืฉืชืืฉ. ืืื ืชืขืืื ืืฉ โโืื ืืคืชื ืคืจืื ืืืฉืืื ืืืื. ืื ืืกืืื ืฉืขืืื ื ืืืฆืืจ ืฆืื ืืคืชืืืช "ืืืจืื" ืื ืืคื ื ืฉืื ื ืืืฆืืืื ืืขืฆืื ื ืชืขืืื. ืืืืจ ืืืฉืื ืืื ืฉื ืจืื ืืช ืืืืฉืืจ ืืืชืื ืืฉืจืช, ืชืื ืฆืืื ืืื ืืืคืชืืืช ืขืืืจื ืืฉ ืื ื ืืคืชื ืคืจืื.ืื ืืืืคืช ืืคืชืืืช ืฆืืืืจืืช ืขืืืื ืืื ืืงืืืืช. ืื ืขืืื ืืคืืื ืขื ืชืขืืืืช. ืืืฉืืจืื ืคืฉืื ืืืืืื ืืช ืืฆืืจื ืืฉืจืช ืืืืกื ืืคืชืืืช ืฆืืืืจืืื.
ืืืืจ ืืื, ืฆืืจ ืืช ืืืืฉืืจ ืขืฆืื. ืื ื ืฆืจืื ืืจืฉืืช ืืฉืชืืฉ ืืืืื ืื ืืืจืืื ืฉื 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 ืขืืืจ ืืฉืชืืฉ ื-Ubuntu) ืื ืืฉืชืืฉืช ืื ืืืืฉื ืืืงืจื ืืืจืื.
ืืืฉื ืืฉืขืช ืืืจืื: ืชืืื ืืช ืคืขืืื
ืืืืง ืืช ืืคืชื ืืืืืื ืืืคืขื ืืช ืืคืงืืื:
$ 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 ืืื ืืขืงืืฃ ืืืชื. ืื ืืชื ืฆืจืื ืืฉืืื ืชืขืืื ืืขืืืช, ืืืคืฉืจืืช ืืงืื ืืืืืืื ืืืืชืจ ืืื
ืื ืฉืื ื ืืืื ืืืืฉื ืื ืืื ืชืืืืช ืืืืืจื. ืืชื ืืืื ืืฉืื ืืช ืืคืชืืืช ืืืืืื ืฉืื ืืืกืคืช ืืื ืื ืืืื ืืฉืื ืืงืื.
ืขื ืืืืืืช ืืคืจืกืื
ืฉืจืชืื ืืคืืื - ืืื
ืืงืืจ: www.habr.com