ื ื™ืฆืŸ SSH ืื™ื‘ืขืจ ืึท UNIX ื›ืึธืœืขืœ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืกื•ื“ืึธ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ืกื•ื™ื“ ื˜ืขืงืขืก

Timothee Ravier ืคื•ืŸ Red Hat, ืึท ืžืึทื™ืกื˜ืขืจ ืคื•ืŸ ื“ื™ ืคืขื“ืึธืจืึท ืกื™ืœื•ื•ืขืจื‘ืœื•ืข ืื•ืŸ ืคืขื“ืึธืจืึท ืงื™ื ืึธื™ื˜ืข ืคึผืจืึทื“ื–ืฉืขืงืก, ืคืืจื’ืขืœื™ื™ื’ื˜ ืึท ื•ื•ืขื’ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ื ื™ืฆืŸ ื“ื™ ืกื•ื“ืึธ ื™ื•ื˜ื™ืœืึทื˜ื™ื–, ื•ื•ืึธืก ื ื™ืฆื˜ ื“ื™ ืกื•ื™ื“ ื‘ื™ืกืœ ืฆื• ืขืกืงืึทืœื™ื™ื˜ ืคึผืจื™ื•ื•ื™ืœืึทื“ื–ืฉืึทื–. ืึทื ืฉื˜ืึธื˜ ืกื•ื“ืึธ, ืคึฟืึทืจ ืึท ื ืึธืจืžืึทืœ ื‘ืึทื ื™ืฆืขืจ ืฆื• ื•ื™ืกืคื™ืจืŸ ืงืึทืžืึทื ื“ื– ืžื™ื˜ ื•ื•ืึธืจืฆืœ ืจืขื›ื˜, ืขืก ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ืฆื• ื ื•ืฆืŸ ื“ื™ ssh ื ื•ืฆืŸ ืžื™ื˜ ืึท ื”ื™ื’ืข ืงืฉืจ ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกื™ืกื˜ืขื ื“ื•ืจืš ืึท UNIX ื›ืึธืœืขืœ ืื•ืŸ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ืคึผืขืจืžื™ืฉืึทื ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ SSH ืฉืœื™ืกืœืขืŸ.

ื ื™ืฆืŸ ssh ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืกื•ื“ืึธ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ืกื•ื™ื“ ืžื’ื™ืœื” ืื•ื™ืฃ ื“ืขื ืกื™ืกื˜ืขื ืื•ืŸ ื’ืขื‘ืŸ ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ืคึผืจื™ื•ื•ืœื™ื“ื–ืฉื“ ืงืึทืžืึทื ื“ื– ืื™ืŸ ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืกื•ื•ื™ื•ื•ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฉืึทื ื– ื•ื•ืึธืก ื ื•ืฆืŸ ืงืึทื ื˜ื™ื™ื ืขืจ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ืึทื–ืึท ื•ื•ื™ ืคืขื“ืึธืจืึท ืกื™ืœื•ื•ืขืจื‘ืœื•ืข, ืคืขื“ืึธืจืึท ืงื™ื ืึธื™ื˜ืข, ืคืขื“ืึธืจืึท ืกืขืจื™ืกืขืึท ืื•ืŸ ืคืขื“ืึธืจืึท ืึธื ื™ืงืก. ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ืึทืงืกืขืก, ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืคื•ืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜ ืžื™ื˜ ืึท ื•ืกื‘ ืกื™ืžืขืŸ (ืœืžืฉืœ, Yubikey) ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜.

ื ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื ื’ OpenSSH ืกืขืจื•ื•ืขืจ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคึฟืึทืจ ืึทืงืกืขืก ื“ื•ืจืš ืึท ื”ื™ื’ืข ื™ื•ื ื™ืงืก ื›ืึธืœืขืœ (ืึท ื‘ืึทื–ื•ื ื“ืขืจ sshd ื‘ื™ื™ึทืฉืคึผื™ืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืœืึธื ื˜ืฉื˜ ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข):

/etc/systemd/system/sshd-unix.socket: [Unit] ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’=OpenSSH Server Unix Socket Documentation=man:sshd(8) man:sshd_config(5) [Socket] ListenStream=/run/sshd.sock ืึธื ื ืขืžืขืŸ=ื™ืึธ [ื™ื ืกื˜ืึทืœื™ืจืŸ] WantedBy=sockets.target

/ ืขื˜ืง / ืกื™ืกื˜ืขืžื“ / ืกื™ืกื˜ืขื /[ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]: [ื•ื ื™ื˜] ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’=OpenSSH ืคึผืขืจ-ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืกืขืจื•ื•ืขืจ ื“ื™ื™ืžืึทืŸ (ื•ื ื™ืงืก ื›ืึธืœืขืœ) ื“ืึธืงื•ืžืขื ื˜ืึทื˜ื™ืึธืŸ=ืžืึทืŸ:ืกืฉื“(8) ืžืขื ื˜ืฉ:sshd_config(5) Wants=sshd-keygen.target ื ืึธืš=sshd-keygen.target [ืกืขืจื•ื•ื™ืก] ืขืงืกืขืงืกื˜ืึทืจื˜=- /usr/sbin/sshd -i -f /etc/ssh/sshd_config_unix StandardInput = ื›ืึธืœืขืœ

/etc/ssh/sshd_config_unix: # ืœืึธื–ืŸ ื‘ืœื•ื™ื– ืฉืœื™ืกืœ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ PermitRootLogin ืคืึทืจื•ื•ืขืจืŸ-ืฉืคึผืจื™ื›ื•ื•ืึธืจื˜ ืฉืคึผืจื™ื›ื•ื•ืึธืจื˜ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืงื™ื™ืŸ ืคึผืขืจืžื™ื˜EmptyPasswords ืงื™ื™ืŸ GSSAPI .ืฉืฉ / ืึทื•ื˜ื”ืึธืจื™ื–ืขื“_ ืฉืœื™ืกืœืขืŸ # ื’ืขื‘ืŸ sftp ืกื•ื‘ืกื™ืกื˜ืขื sftp /usr/libexec/openssh/sftp-server

ืึทืงื˜ืึทื•ื•ื™ื™ื˜ ืื•ืŸ ืงืึทื˜ืขืจ ื“ื™ ืกื™ืกื˜ืขื ืึทืคึผืึทืจืึทื˜: sudo systemctl daemon-reload sudo systemctl ื’ืขื‘ืŸ โ€” ืื™ืฆื˜ sshd-unix.socket

ืœื™ื™ื’ ื“ื™ื™ืŸ SSH ืฉืœื™ืกืœ ืฆื• /root/.ssh/authorized_keys

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ืขื SSH ืงืœื™ืขื ื˜.

ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ืกืึธืงืึทื˜ ื ื•ืฆืŸ: sudo dnf install socat

ืžื™ืจ ื”ืขืกืึธืคืข /.ssh/config ื“ื•ืจืš ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืกืึธืงืึทื˜ ื•ื•ื™ ืึท ืคึผืจืึทืงืกื™ ืคึฟืึทืจ ืึทืงืกืขืก ื“ื•ืจืš ืึท ื™ื•ื ื™ืงืก ื›ืึธืœืขืœ: Host host.local ื‘ืึทื ื™ืฆืขืจ ื•ื•ืึธืจืฆืœ # ื ื™ืฆืŸ /run/host/run ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ /run ืฆื• ืึทืจื‘ืขื˜ืŸ ืคึฟื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ProxyCommand socat - UNIX-CLIENT: / run/host/run/sshd.sock # ื•ื•ืขื’ ืฆื• ื“ื™ SSH ืฉืœื™ืกืœ ืื™ื“ืขื ื˜ื™ื˜ืขื˜ ื˜ืขืงืข ~/.ssh/keys/localroot # ื’ืขื‘ืŸ TTY ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื• ืฉืึธืœ RequestTTY ื™ืึธ # ืึทืจืึธืคึผื ืขืžืขืŸ ื•ืžื ื™ื™ื˜ื™ืง ืจืขื–ื•ืœื˜ืึทื˜ LogLevel QUIET

ืื™ืŸ ื–ื™ื™ืŸ ืงืจืึทื ื˜ ืคืึธืจืขื, ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ื•ื•ืขื˜ ืื™ืฆื˜ ืงืขื ืขืŸ ืฆื• ื•ื™ืกืคื™ืจืŸ ืงืึทืžืึทื ื“ื– ื•ื•ื™ ื•ื•ืึธืจืฆืœ ืึธืŸ ืึทืจื™ื™ึทืŸ ืึท ืคึผืึทืจืึธืœ. ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข: $ ssh host.local [root ~]#

ืžื™ืจ ืžืึทื›ืŸ ืึท ืกื•ื“ืึธื”ืึธืกื˜ ืึทืœื™ืึทืก ืื™ืŸ ื‘ืึทืฉ ืฆื• ืœื•ื™ืคืŸ "ssh host.local", ืขื ืœืขืš ืฆื• ืกื•ื“ืึธ: sudohost () {if [[ ${#} -eq 0]]; ื“ืขืžืึธืœื˜ ssh host.local "ืกื™ื™ \"${ืคึผื•ื•ื“}\"; ืขืงืกืขืง \"${ืฉืขืœ}\" --ืœืึธื’ื™ืŸ" ืึทื ื“ืขืจืฉ ssh host.local "ืกื™ื™ \"${ืคึผื•ื•ื“}\"; ืขืงืกืขืง \ยป${@}\ยปยป fi }

ืงื•ืง: $ sudohost id uid=0(root) gid=0(root) ื’ืจื•ืคึผืขืก=0(root)

ืžื™ืจ ืœื™ื™ื’ืŸ ืงืจืึทื“ืขื ื˜ืฉืึทืœื– ืื•ืŸ ื’ืขื‘ืŸ ืฆื•ื•ื™ื™-ืคืึทืงื˜ืึธืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ, ืึทืœืึทื•ื™ื ื’ ื•ื•ืึธืจืฆืœ ืึทืงืกืขืก ื‘ืœื•ื™ื– ื•ื•ืขืŸ ืึท ื™ื•ื‘ื™ืงื™ื™ ื•ืกื‘ ื˜ืึธืงืขืŸ ืื™ื– ื™ื ืกืขืจื˜ืึทื“.

ืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื•ื•ืึธืก ืึทืœื’ืขืจื™ื“ืึทืžื– ื–ืขื ืขืŸ ื’ืขืฉื˜ื™ืฆื˜ ื“ื•ืจืš ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื™ื•ื‘ื™ืงื™ื™: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{ื“ืจื•ืง $2}'

ืื•ื™ื‘ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– 5.2.3 ืึธื“ืขืจ ื”ืขื›ืขืจ, ื ื•ืฆืŸ ed25519-sk ื•ื•ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืฉืœื™ืกืœืขืŸ, ืึทื ื“ืขืจืฉ ื ื•ืฆืŸ ecdsa-sk: ssh-keygen -t ed25519-sk ืึธื“ืขืจ ssh-keygen -t ecdsa-sk

ืžื•ืกื™ืฃ ื“ืขื ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืฆื• /root/.ssh/authorized_keys

ืœื™ื™ื’ ืึท ืฉืœื™ืกืœ ื˜ื™ืคึผ ื‘ื™ื™ื ื“ื™ื ื’ ืฆื• ื“ื™ sshd ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ: /etc/ssh/sshd_config_unix: PubkeyAcceptedKeyTypes [ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜],[ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]

ืžื™ืจ ื‘ืึทื’ืจืขื ืขืฆืŸ ืึทืงืกืขืก ืฆื• ื“ื™ ื™ื•ื ื™ืงืก ื›ืึธืœืขืœ ื‘ืœื•ื™ื– ืฆื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืึธืก ืงืขื ืขืŸ ื”ืึธื‘ืŸ ืคึผืจื™ื•ื•ื™ืœืึทื“ื–ืฉืึทื– ื”ืขื›ืขืจ (ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื™ืฉืคึผื™ืœ, ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ื ืึธืžืขืŸ). ืื™ืŸ /etc/systemd/system/sshd-unix.socket ืœื™ื™ื’: [ืกืึธืงืงืขื˜] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’