Pe Ubuntu 11.10, am constatat că am putea bloca comenzile ssh, trimis cu și fără -T și blocând copierea scp, permițând în același timp parcurgerea porturilor.
Mai exact am un server redis pe "somehost" legat de localhost: 6379 pe care doresc să-l împărtășesc în siguranță prin tunelurile ssh către alte host-uri care au un keyfile și care vor ssh in cu:
$ ssh -i keyfile.rsa -T -N -L 16379:localhost:6379 [email protected]
Acest lucru va face ca serverul redis, portul "localhost" 6379 pe "somehost" să apară local pe gazda care execută comanda ssh, remapată la portul "localhost" 16379.
Pe telecomanda "somehost" Iată ce am folosit pentru authorized_keys:
cat .ssh/authorized_keys (portions redacted)
no-pty,no-X11-forwarding,permitopen="localhost:6379",command="/bin/echo do-not-send-commands" ssh-rsa rsa-public-key-code-goes-here [email protected]
No-pty trips până cele mai multe încercări ssh care doresc să deschidă un terminal.
Permisul de permis explică ce porturi sunt permise să fie redirecționate, în acest caz portul 6379 portul redis-server pe care doream să-l înaintez.
Comanda = "/ bin/echo do-not-send-commands" repeta comenzile "do-not-send" daca cineva sau ceva nu reuseste sa trimita comenzi catre gazda prin ssh -T sau altfel.
De la un om recent om sshd
, autorizat_keys/comanda este descris după cum urmează:
comanda = "comanda"
Specifică faptul că comanda este executată ori de câte ori această cheie este utilizată
pentru autentificare. Comanda furnizată de utilizator (dacă există) este
ignorate.
Încercările de a folosi copierea securizată a fișierelor scp vor eșua, de asemenea, cu un ecou al "do-not-send-commands". Am constatat că sftp nu reușește și cu această configurație.
Cred că sugestia de coajă limitată, făcută în unele răspunsuri anterioare, este, de asemenea, o idee bună.
De asemenea, aș fi de acord că tot ceea ce este detaliat aici ar putea fi determinat de la citirea "om sshd" și căutarea în acesta pentru "authorized_keys"