Saya bertujuan untuk memulai sshd
instance kedua pada port non-privilege (mis. 2222) dengan file konfigurasi saya sendiri.
Jelas, sshd
prosesnya tidak bisa setuid
masuk sebagai pengguna selain dari orang yang menjalankan sshd
daemon jelas tidak mungkin.
Namun, apakah mungkin untuk memiliki sshd
daemon yang berfungsi yang akan berfungsi untuk pengguna yang sedang berjalan? Untuk kasus penggunaan saya, ini akan baik-baik saja.
Saya mencoba mem-boot sebuah sshd
instance dengan file config dan kunci host saya sendiri dan sshd
proses dimulai (tidak ada keluhan tentang tidak menjadi root, seperti beberapa perintah), namun ketika saya mencoba untuk terhubung ke port itu, sshd
proses mati.
$ /usr/sbin/sshd -dD -h .ssh/id_rsa -p 2222
debug1: sshd version OpenSSH_5.6p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: setgroups() failed: Operation not permitted
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-dD'
debug1: rexec_argv[2]='-h'
debug1: rexec_argv[3]='.ssh/id_rsa'
debug1: rexec_argv[4]='-p'
debug1: rexec_argv[5]='2222'
debug1: Bind to port 2222 on 0.0.0.0.
Server listening on 0.0.0.0 port 2222.
debug1: Bind to port 2222 on ::.
Server listening on :: port 2222.
debug1: fd 6 clearing O_NONBLOCK
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 6 out 6 newsock 6 pipe -1 sock 9
debug1: inetd sockets after dupping: 5, 5
Connection from ::1 port 57670
debug1: Client protocol version 2.0; client software version OpenSSH_5.6
debug1: match: OpenSSH_5.6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: list_hostkey_types:
No supported key exchange algorithms
debug1: do_cleanup
debug1: do_cleanup
debug1: audit_event: unhandled event 12
The debug1: setgroups() failed: Operation not permitted
garis jelas menonjol, tetapi tidak mati sampai ia mencoba untuk menerima koneksi.
UsePam
keno
.Sebagai pembaruan untuk utas ini, OpenSSH dalam versi 7.5 tidak lagi menggunakan opsi UsePrivilegeSeparation, sehingga tidak memungkinkan untuk menonaktifkan pemisahan hak istimewa. Tampaknya menjalankan SSHD sebagai pengguna sekarang tidak mungkin.
Lihat https://www.openssh.com/releasenotes.html
sumber
Saya telah memeriksa secara terperinci kemungkinan menjalankan layanan sshd sebagai pengguna normal. Detail versi program:
Akhirnya setelah menyelesaikan banyak kesalahan, saya mencapai titik dimana SSHD dibatalkan dengan kesalahan berikut:
Saya memeriksa kode sumber untuk melihat apakah mungkin untuk menyelesaikan masalah tanpa mengubah kode sumber. Lihat kodenya di sini . Beberapa bagian dari kode menyebabkan aborsi program:
Itu memeriksa hak pengguna dengan
(geteuid() != 0)
dan di sini menyebabkan masalah.sumber
Dengan asumsi apa yang @magiclantern sebutkan di atas dan dengan asumsi Anda tidak ingin menambal
sshd
apakah Dropbear akan bekerja untuk Anda? Ini digunakan di banyak perangkat tertanam yang menginginkan server ssh dengan jejak yang lebih kecil (dan lebih sedikit fitur / konfigurasi).sumber
Berikut ini adalah bash userland sript berdasarkan jawaban Bo Jeanes bahwa:
sumber