Mampiasa SSH amin'ny socket UNIX fa tsy sudo hanesorana ireo rakitra suid

Timothee Ravier avy ao amin'ny Red Hat, mpitahiry ny tetikasa Fedora Silverblue sy Fedora Kinoite, dia nanolotra fomba iray hialana amin'ny fampiasana ny sudo utility, izay mampiasa ny suid bit mba hampitombo ny tombontsoa. Raha tokony sudo, ho an'ny mpampiasa mahazatra manatanteraka baiko miaraka amin'ny zo fototra, dia soso-kevitra ny hampiasa ny ssh utility miaraka amin'ny fifandraisana eo an-toerana amin'ny rafitra mitovy amin'ny alΓ lan'ny socket UNIX sy ny fanamarinana ny fahazoan-dΓ lana mifototra amin'ny fanalahidy SSH.

Ny fampiasana ssh fa tsy sudo dia ahafahanao manaisotra ny programa suid amin'ny rafitra ary mamela ny fanatanterahana ny baikon'ny tombontsoa amin'ny tontolon'ny fizarana izay mampiasa singa mitoka-monina, toy ny Fedora Silverblue, Fedora Kinoite, Fedora Sericea ary Fedora Onyx. Mba hamerana ny fidirana dia azo ampiasaina fanampiny ny fanamafisana ny fahefana amin'ny alΓ lan'ny token USB (ohatra, Yubikey).

Ohatra iray amin'ny fanefena ny singa mpizara OpenSSH ho an'ny fidirana amin'ny alΓ lan'ny socket Unix eo an-toerana (misy ohatra sshd misaraka hatomboka miaraka amin'ny fichier configuration azy manokana):

/etc/systemd/system/sshd-unix.socket: [Unit] Description=OpenSSH Server Unix Socket Documentation=man:sshd(8) man:sshd_config(5) [Socket] ListenStream=/run/sshd.sock Accept=yes [Install] WantedBy=sockets.target

/ sns / systemd / system /[email voaaro]: [Unit] Famaritana=OpenSSH isaky ny daemon mpizara fifandraisana (Socket Unix) Documentation=man:sshd(8) man: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: # Avelao fotsiny ny fanamarinana fanalahidy PermitRootLogin mandrara-password PasswordAuthentication no PermitEmptyPasswords no GSSAPIAuthentication no # mametra ny fidirana amin'ireo mpampiasa voafantina AllowUsers root adminusername # Mamela ny fampiasana ny .ssh/withoutauthorized_keyskeyssh. /authorized_keys # avelao ny sftp Subsystem sftp /usr/libexec/openssh/sftp-server

Ampidiro ary atombohy ny singa systemd: sudo systemctl daemon-reload sudo systemctl enable β€”now sshd-unix.socket

Ampio ny fanalahidinao SSH amin'ny /root/.ssh/authorized_keys

Fametrahana ny mpanjifa SSH.

Apetraho ny utility socat: sudo dnf install socat

Manampy /.ssh/config izahay amin'ny famaritana ny socat ho proxy ho an'ny fidirana amin'ny socket UNIX: Host host.local User root # MampiasΓ  /run/host/run fa tsy / run to work from containers ProxyCommand socat - UNIX-CLIENT: / run/ host/run/sshd.sock # Lalana mankany amin'ny SSH key IdentityFile ~/.ssh/keys/localroot # Alefaso ny fanohanan'ny TTY ho an'ny shell interactive RequestTTY eny # Esory ny vokatra tsy ilaina LogLevel QUIET

Amin'ny endriny amin'izao fotoana izao, ny mpampiasa adminusername dia afaka manatanteraka baiko toy ny faka tsy misy tenimiafina. Fanamarinana ny fandidiana: $ ssh host.local [root ~]#

Mamorona aliasan'ny sudohost amin'ny bash izahay mba hampandehanana "ssh host.local", mitovy amin'ny sudo: sudohost() { raha [[ ${#} -eq 0 ]]; avy eo ssh host.local "cd \"${PWD}\"; exec \"${SHELL}\" --login" else ssh host.local "cd \"${PWD}\"; exec \»${@}\»» fi }

Jereo: $ sudohost id uid=0(root) gid=0(root) group=0(root)

Manampy ny fahazoan-dΓ lana izahay ary mamela ny fanamarinana roa lafin-javatra, mamela ny fidirana amin'ny faka raha tsy misy marika USB Yubikey.

Manamarina izay algorithma tohanan'ny Yubikey efa misy izahay: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{print $2}'

Raha 5.2.3 na mihoatra ny vokatra dia ampiasao ed25519-sk rehefa mamorona fanalahidy, raha tsy izany dia ampiasao ecdsa-sk: ssh-keygen -t ed25519-sk na ssh-keygen -t ecdsa-sk

Manampy ny fanalahidin'ny daholobe amin'ny /root/.ssh/authorized_keys

Manampia karazana fanalahidy mifamatotra amin'ny sshd configuration: /etc/ssh/sshd_config_unix: PubkeyAcceptedKeyTypes [email voaaro],[email voaaro]

Mametra ny fidirana amin'ny socket Unix ho an'ny mpampiasa izay afaka manana tombontsoa ambony (amin'ny ohatra anay, adminusername). Ao amin'ny /etc/systemd/system/sshd-unix.socket ampio: [Socket] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

Source: opennet.ru

Add a comment