Saya memulai sebuah perusahaan hosting yang sangat kecil untuk beberapa teman dan klien kecil, tidak ada yang besar.
Saya ingin memberi "klien" saya hak untuk mengelola file mereka di server. Saya benci FTP karena tidak aman dan menurut saya sudah usang.
Jadi saya ingin mengizinkan pengguna untuk terhubung melalui SFTP tetapi tidak mengizinkan mereka terhubung melalui SSH. (Saya tahu, saya tahu, SFTP menggunakan SSH). Tapi saya hanya bertanya-tanya, mungkinkah?
Jadi saya tidak perlu menginstal layanan FTP di server dan semuanya akan luar biasa!
Ada cangkang scponly apa ini. Itu juga bisa chroot .
sumber
Periksa rssh yang merupakan shell palsu yang memungkinkan sftp tetapi menolak ssh
Lebih lanjut tentang RSSH
http://www.pizzashack.org/rssh/
RPM
http://pkgs.repoforge.org/rssh/
Anda dapat mengkonfigurasi rssh untuk membolehkan / menolak berbagai perilaku seperti sft, scp dll.
sumber
Anda dapat memodifikasi / etc / passwd dan memberikan shell palsu kepada pengguna tersebut sehingga ia tidak dapat menggunakan ssh.
sumber
/bin/false
tidak bekerja ssh atau sftpSaya menggunakan metode menentukan shell pengguna sebagai / bin / false seperti yang disebutkan. Namun, Anda harus memastikan bahwa / bin / shell ada di / etc / shells. Kemudian ia bekerja ssh = no ftp = ok.
Saya juga menggunakan vsftpd dan menambahkan
chroot_local_user = YES ini ke /etc/vsftpd/vsftpd.conf sehingga ftp-ers tidak dapat melihat tanggal selain milik mereka sendiri.
Keuntungan dari perubahan sederhana ini bukanlah konfigurasi yang mengganggu untuk konfigurasi ssh untuk setiap pengguna.
sumber
Jangan lupa untuk menemukan baris
UsePAM yes
dan berkomentar:Tanpa menonaktifkan ini, server SSH Anda akan macet saat memuat ulang / memulai kembali. Karena Anda tidak memerlukan fungsi mewah PAM, ini tidak masalah.
sumber
Mengkonfigurasi ssh agar hanya mengaktifkan sftp untuk beberapa pengguna terpilih adalah ide bagus dan berfungsi dengan baik, asalkan Anda menginstal salah satu
scponly
ataurssh
.rssh
berfungsi dengan baik, kecuali jika Anda perlu mengkonfigurasi jail, dalam hal ini cobalah untuk mengikuti instruksi yang diberikan oleh manual CHROOT gila, yang mengarah ke "menyalin" sebagian besar executable sistem dan perpustakaan tepat di bawah "jail setiap pengguna", termasukrssh
shell itu sendiri. Ini adalah metode pemborosan ruang.scponly
membutuhkan pemahaman yang mendalam dalam konfigurasi yang mengarah ke masalah penolakan login jika terjadi pengaturan jail.Cara langsung untuk memungkinkan fungsionalitas "ftp" dengan jail berfungsi dengan baik, dukungan SSL / TLS untuk transaksi dan login yang aman adalah dengan menggunakan VSFTPD "lama namun berfungsi", yang menginstal dengan cepat dan bersih dan menawarkan semua konfigurasi sesuai kebutuhan dan, terakhir tetapi yang tidak kalah penting: ini berhasil!
Maurizio.
sumber
Sayangnya semua jawaban sangat menyesatkan: silakan lakukan hal berikut:
Pertama buat pengguna sftp dan grup sftp
Buat direktori terpisah sebagai root untuk file SFTP:
sudo mkdir -p /home/sftpdir
Mulai ulang dan periksa status layanan sshd
sudo service sshd restart
status layanan sshd
Buat file Shell. Tambahkan eksekusi untuk mengulang pesan pemberitahuan
sudo touch / bin / sftponly echo -e '#! / bin / sh \ necho "Akun ini terbatas hanya untuk akses SFTP."' | sudo tee -a / bin / sftponly
Berikan izin eksekusi dan tambahkan ke file shells
sudo chmod a + x / bin / sftponly echo "/ bin / sftponly" | sudo tee -a / etc / shells
akhirnya Uji dan Anda tidak dapat terhubung.
Templat untuk menggunakan klien SFTP dengan kunci SSH dan verbositas dasar:
sftp -v -oPort = $ RANDOM_PORT -i ~ / .ssh / $ SSH_KEY.pem sftpuser @ $ HOST
sumber