Setelah empat tahun, jawaban ini layak diperbarui. Meskipun awalnya saya menggunakan authorized_keys
sendiri dan mungkin akan menggunakannya masih dalam beberapa kasus tertentu, Anda juga dapat menggunakan sshd_config
file konfigurasi server pusat .
sshd_config
Anda dapat menetapkan (untuk kasus penggunaan khusus Anda) grup, seperti proxy-only
atau Match
pengguna individu. Dalam sshd_config
. Ini dilakukan setelah pengaturan global dan mencabut, mengulangi atau memperbaiki beberapa pengaturan yang diberikan dalam pengaturan global.
Catatan: beberapa sintaks / arahan yang digunakan dalam sshd_config(5)
didokumentasikan man
untuk halaman ssh_config(5)
. Khususnya pastikan untuk membaca bagian POLA dari ssh_config(5)
.
Untuk grup ini berarti Match
blok Anda akan mulai seperti ini:
Match group proxy-only
Anda bisa Match
kriteria sebagai berikut: User
, Group
, Host
, LocalAddress
, LocalPort
dan Address
. Untuk mencocokkan beberapa kriteria cukup koma-pisahkan pasangan kriteria-pola (di group proxy-only
atas).
Di dalam blok seperti itu, yang secara tradisional diindentasi sesuai untuk singkatnya (tetapi tidak perlu), Anda kemudian dapat mendeklarasikan pengaturan yang ingin Anda terapkan untuk grup pengguna tanpa harus mengedit setiap authorized_keys
file tunggal untuk anggota grup itu.
The no-pty
pengaturan dari authorized_keys
akan dicerminkan oleh PermitTTY no
pengaturan dan command="/sbin/nologin"
akan menjadi ForceCommand /sbin/nologin
.
Selain itu Anda juga dapat mengatur lebih banyak pengaturan untuk memuaskan paranoia admin, seperti chroot
-menggunakan pengguna ke dalam folder rumahnya dan berakhir dengan sesuatu seperti ini:
Match group proxy-only
PermitTTY no
ForceCommand /sbin/nologin
ChrootDirectory %h
# Optionally enable these by un-commenting the needed line
# AllowTcpForwarding no
# GatewayPorts yes
# KbdInteractiveAuthentication no
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin no
(periksa sendiri apakah Anda perlu atau ingin komentar keluar dan batalkan komentar yang diperlukan)
Ini %h
adalah token yang diganti oleh direktori home pengguna ( %u
akan menghasilkan nama pengguna dan %%
tanda persen). Saya telah menemukan ChrootDirectory
sangat berguna untuk membatasi sftp-only
pengguna saya :
Match group sftp-only
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication no
Harap diingat bahwa hanya arahan tertentu yang dapat digunakan dalam satu Match
blok. Konsultasikan man
halaman sshd_config(5)
untuk detail (mencari Match
).
kunci yang diizinkan
NB: bagian di bawah komentar ini adalah jawaban asli saya. Sementara itu - tetapi itu juga tergantung pada fitur-fitur dari sshd
versi persis Anda - saya akan menggunakan metode yang dijelaskan di atas dalam banyak kasus.
Ya, Anda bisa, sehebat yang Anda bisa berikan kunci publik. Selain nologin seperti yang direkomendasikan oleh ajdecon, saya akan menyarankan pengaturan berikut di depan entri kunci di authorized_keys
:
no-pty ssh-rsa ...
No pty memberitahu sisi server bahwa tidak ada pseudo-terminal yang harus dialokasikan untuk kunci itu.
Anda juga bisa memaksakan eksekusi sesuatu seperti nologin untuk kunci tertentu dengan menambahkan ini:
command="/sbin/nologin",no-pty ssh-rsa ...
no-pty
sendirian tidak akan mencegah pengguna kunci dari menjalankan perintah. Lihat superuser.com/q/1230979/195460 .Untuk setiap pengguna tunneling saja, ubah shell login mereka ke / sbin / nologin. Dengan cara itu pengguna Anda tidak akan dapat mengakses shell di server, tetapi masih dapat menjalankan pengaturan ssh tunnel dari klien mereka.
sumber
Saya tahu ini mungkin bukan jawaban yang Anda cari, tetapi apakah Anda sudah mempertimbangkan untuk menggunakan OpenVPN sebagai alternatif?
sumber
Jika Anda siap untuk menyerahkan otentikasi pengguna / pass dan menggunakan kunci untuk masuk, Anda dapat menentukan parameter s untuk setiap kunci publik.
Parameter penting adalah:
dan
dan akhirnya
Dengan ini, Anda dapat membatasi pengguna pasangan kunci tertentu apa yang dapat dilakukannya dengan sesi SSH.
Akan terlihat seperti ini:
sumber
Saya sarankan mencoba Tunnelier . Ini sih jauh lebih mudah untuk mengkonfigurasi / mengelola.
sumber