Setelah empat tahun, jawaban ini layak diperbarui. Meskipun awalnya saya menggunakan authorized_keyssendiri dan mungkin akan menggunakannya masih dalam beberapa kasus tertentu, Anda juga dapat menggunakan sshd_configfile konfigurasi server pusat .
sshd_config
Anda dapat menetapkan (untuk kasus penggunaan khusus Anda) grup, seperti proxy-onlyatau Matchpengguna 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 manuntuk halaman ssh_config(5). Khususnya pastikan untuk membaca bagian POLA dari ssh_config(5).
Untuk grup ini berarti Matchblok Anda akan mulai seperti ini:
Match group proxy-only
Anda bisa Matchkriteria sebagai berikut: User, Group, Host, LocalAddress, LocalPortdan Address. Untuk mencocokkan beberapa kriteria cukup koma-pisahkan pasangan kriteria-pola (di group proxy-onlyatas).
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_keysfile tunggal untuk anggota grup itu.
The no-ptypengaturan dari authorized_keysakan dicerminkan oleh PermitTTY nopengaturan 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 %hadalah token yang diganti oleh direktori home pengguna ( %uakan menghasilkan nama pengguna dan %%tanda persen). Saya telah menemukan ChrootDirectorysangat berguna untuk membatasi sftp-onlypengguna 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 Matchblok. Konsultasikan manhalaman 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 sshdversi 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-ptysendirian tidak akan mencegah pengguna kunci dari menjalankan perintah. Lihat superuser.com/q/1230979/195460 .