Suid เดซเดฏเดฒเตเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป เดธเตเดกเต‹เดฏเตเด•เตเด•เต เดชเด•เดฐเด‚ UNIX เดธเต‹เด•เตเด•เดฑเตเดฑเดฟเตฝ SSH เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

Red Hat-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ Timothee Ravier, Fedora Silverblue, Fedora Kinoite เดชเตเดฐเตŠเดœเด•เตโ€Œเดฑเตเดฑเตเด•เดณเตเดŸเต† เดฎเต†เดฏเดฟเดจเตเดฑเดจเตผ, เดธเตเดกเต‹ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดดเดฟเดตเดพเด•เตเด•เดพเดจเตเดณเตเดณ เด’เดฐเต เดฎเดพเตผเด—เด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเต, เด…เดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเด™เตเด™เตพ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต suid เดฌเดฟเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. sudo-เดฏเตเด•เตเด•เต เดชเด•เดฐเด‚, เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เดฑเต‚เดŸเตเดŸเต เด…เดตเด•เดพเดถเด™เตเด™เดณเตเดณเตเดณ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, UNIX เดธเต‹เด•เตเด•เดฑเตเดฑเต เดตเดดเดฟเดฏเตเด‚ SSH เด•เต€เด•เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เด…เดจเตเดฎเดคเดฟเด•เดณเตเดŸเต† เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเดตเตเด‚ เดตเดดเดฟ เด…เดคเต‡ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เด•เตเด•เตฝ เด•เดฃเด•เตเดทเดจเตเดณเตเดณ ssh เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเตเดกเต‹เดฏเตเด•เตเด•เต เดชเด•เดฐเด‚ ssh เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต, เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต† suid เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดพเดจเตเด‚, Fedora Silverblue, Fedora Kinoite, Fedora Sericea, Fedora Onyx เดคเตเดŸเด™เตเด™เดฟเดฏ เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดเดธเตŠเดฒเต‡เดทเตป เด˜เดŸเด•เด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดตเดฟเดคเดฐเดฃเด™เตเด™เดณเตเดŸเต† เดนเต‹เดธเตเดฑเตเดฑเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดคเตเดฏเต‡เด• เด•เดฎเดพเตปเดกเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด†เด•เตโ€Œเดธเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดฏเตเดŽเดธเตเดฌเดฟ เดŸเต‹เด•เตเด•เตบ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฏเตเดฌเดฟเด•เต†) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดงเดฟเด•เดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚ เด…เดงเดฟเด•เดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต.

เด’เดฐเต เดฒเต‹เด•เตเด•เตฝ Unix เดธเต‹เด•เตเด•เดฑเตเดฑเต เดตเดดเดฟเดฏเตเดณเตเดณ เดชเตเดฐเดตเต‡เดถเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ OpenSSH เดธเต†เตผเดตเตผ เด˜เดŸเด•เด™เตเด™เตพ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ (เด…เดคเดฟเดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• sshd เด‰เดฆเดพเดนเดฐเดฃเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด‚):

/etc/systemd/system/sshd-unix.socket: [เดฏเต‚เดฃเดฟเดฑเตเดฑเต] เดตเดฟเดตเดฐเดฃเด‚=เด“เดชเตเดชเตบเดŽเดธเตเดŽเดธเตเดŽเดšเตเดšเต เดธเต†เตผเดตเตผ เดฏเตเดฃเดฟเด•เตเดธเต เดธเต‹เด•เตเด•เดฑเตเดฑเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป=เดฎเดพเตป:เดŽเดธเตเดŽเดธเตเดŽเดšเตเดšเตเดกเดฟ(8) เดฎเดพเตป:sshd_config(5) [เดธเต‹เด•เตเด•เดฑเตเดฑเต] ListenStream=/run/sshd.sock Accept=yes [เด‡เตปเดธเตเดฑเตเดฑเดพเตพ] WantedBy=sockets.target

/ etc / systemd / system /[เด‡เดฎเต†เดฏเดฟเตฝ เดชเดฐเดฟเดฐเด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต]: [เดฏเต‚เดฃเดฟเดฑเตเดฑเต] เดตเดฟเดตเดฐเดฃเด‚=เด“เดชเตเดชเตบเดŽเดธเตเดŽเดธเตเดŽเดšเตเดšเต เดชเต†เตผ-เด•เดฃเด•เตเดทเตป เดธเต†เตผเดตเตผ เดกเต†เดฎเตบ (เดฏเต‚เดฃเดฟเด•เตเดธเต เดธเต‹เด•เตเด•เดฑเตเดฑเต) เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป=เดฎเดพเตป:sshd(8) เดฎเดพเตป:sshd_config(5) Wants=sshd-keygen.target After=sshd-keygen.target [Service] ExecStart=- /usr/sbin/sshd -i -f /etc/ssh/sshd_config_unix StandardInput=socket

/etc/ssh/sshd_config_unix: # เด•เต€ เด“เดคเดจเตเดฑเดฟเด•เตเด•เต‡เดทเตป เดฎเดพเดคเตเดฐเด‚ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเต เด•เต€เด•เตพ2 เด…เด‚เด—เต€เด•เตƒเดค เด•เต€เดธเตเดซเดฏเตฝ .ssh /authorized_ keys # sftp เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเด‚ sftp /usr/libexec/openssh/sftp-server เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•

systemd เดฏเต‚เดฃเดฟเดฑเตเดฑเต เดธเดœเต€เดตเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•: sudo systemctl เดกเต†เดฎเตบ-เดฑเต€เดฒเต‹เดกเต sudo systemctl เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด• -เด‡เดชเตเดชเต‹เตพ sshd-unix.socket

/root/.ssh/authorized_keys-เดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เดณเตเดŸเต† SSH เด•เต€ เดšเต‡เตผเด•เตเด•เตเด•

SSH เด•เตเดฒเดฏเดจเตเดฑเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต.

Socat เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•: sudo dnf เด‡เตปเดธเตเดฑเตเดฑเดพเตพ socat

เด’เดฐเต UNIX เดธเต‹เด•เตเด•เดฑเตเดฑเต เดตเดดเดฟเดฏเตเดณเตเดณ เด†เด•เตโ€Œเดธเดธเตเดธเดฟเดจเตเดณเตเดณ เดชเตเดฐเต‹เด•เตโ€Œเดธเดฟเดฏเดพเดฏเดฟ socat เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต เดžเด™เตเด™เตพ /.ssh/config เดธเดชเตเดฒเดฟเดฎเต†เดจเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต: Host host.local เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดฑเต‚เดŸเตเดŸเต # เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป /run/host/run เดŽเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚ ProxyCommand socat - UNIX-เด•เตเดฒเดฏเดจเตเดฑเต: / run/ host/run/sshd.sock # SSH เด•เต€ เดเดกเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดค ~/.ssh/keys/localroot # เด‡เดจเตเดฑเดฑเดพเด•เตเดŸเต€เดตเต เดทเต†เดฒเตเดฒเดฟเดจเตเดณเตเดณ TTY เดชเดฟเดจเตเดคเตเดฃ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•.

เดจเดฟเดฒเดตเดฟเดฒเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ, เด’เดฐเต เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดจเตฝเด•เดพเดคเต† เดคเดจเตเดจเต† เดฑเต‚เดŸเตเดŸเต เด†เดฏเดฟ เด•เดฎเดพเตปเดกเตเด•เตพ เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดฏเต‚เดธเตผ เด…เดกเตเดฎเดฟเตป เดฏเต‚เดธเตผ เดจเต†เดฏเดฟเดฎเดฟเดจเต เด•เดดเดฟเดฏเตเด‚. เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต: $ ssh host.local [เดฑเต‚เดŸเตเดŸเต ~]#

เดธเตเดกเต‹เดฏเตเด•เตเด•เต เดธเดฎเดพเดจเดฎเดพเดฏเดฟ โ€œssh host.localโ€ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพ เดฌเดพเดทเดฟเตฝ เด’เดฐเต เดธเตเดกเต‹เดนเต‹เดธเตเดฑเตเดฑเต เด…เดชเดฐเดจเดพเดฎเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต: sudohost() { if [[ ${#} -eq 0 ]]; เดคเตเดŸเตผเดจเตเดจเต ssh host.local "cd \"${PWD}\"; เดŽเด•เตเดธเดฟเด•เต \"${SHELL}\" --เดฒเต‹เด—เดฟเตป" เดตเต‡เดฑเต† ssh host.local "cd \"${PWD}\"; เดŽเด•เตเดธเดฟเด•เต \ยป${@}\ยปยป fi }

เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•: $ sudohost id uid=0(เดฑเต‚เดŸเตเดŸเต) gid=0(เดฑเต‚เดŸเตเดŸเต) เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ=0(เดฑเต‚เดŸเตเดŸเต)

เดžเด™เตเด™เตพ เด•เตเดฐเต†เดกเตปเดทเตเดฏเดฒเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดฐเดฃเตเดŸเต-เด˜เดŸเด• เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด’เดฐเต Yubikey USB เดŸเต‹เด•เตเด•เตบ เดšเต‡เตผเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดฑเต‚เดŸเตเดŸเต เด†เด•เตโ€Œเดธเดธเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เต‚.

เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ Yubikey เดเดคเตŠเด•เตเด•เต† เด…เตฝเด—เต‹เดฐเดฟเดคเด™เตเด™เตพ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{print $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 [เด‡เดฎเต†เดฏเดฟเตฝ เดชเดฐเดฟเดฐเด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต],[เด‡เดฎเต†เดฏเดฟเตฝ เดชเดฐเดฟเดฐเด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต]

Unix เดธเต‹เด•เตเด•เดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเตเดฐเดตเต‡เดถเดจเด‚ เดžเด™เตเด™เตพ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเด™เตเด™เตพ เด‰เดฏเตผเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต (เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เด…เดกเตเดฎเดฟเตป เด‰เดชเดฏเต‹เด•เตเดคเตƒเดจเดพเดฎเด‚). /etc/systemd/system/sshd-unix.socket-เตฝ เดšเต‡เตผเด•เตเด•เตเด•: [เดธเต‹เด•เตเด•เดฑเตเดฑเต] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•