Baru saja membuat server Ubuntu virtual baru dan saya sedang dalam proses pengerasan untuk penggunaan produksi. Saat ini saya memiliki akun root. Saya ingin melakukan hal berikut:
- Buat pengguna baru (sebut saja mereka
jim
untuk selanjutnya). Saya ingin mereka memiliki/home/
direktori. - Berikan
jim
akses SSH. - Izinkan
jim
untuksu
melakukan root tetapi tidak melakukansudo
operasi. - Matikan akses SSH root.
- Pindahkan SSHd ke port non-standar untuk membantu menghentikan serangan brute.
Masalah saya terletak pada dua item pertama. Saya sudah menemukan useradd
tetapi untuk beberapa alasan, saya tidak bisa masuk sebagai pengguna yang dibuat dengan SSH. Apakah saya perlu mengalahkan SSHd untuk mengizinkan ini?
/etc/nologin
file tapi itu kosong. Saya menghapusnya dan memulai kembali ssh tetapi masih tetap meresponsPermission denied, please try again.
ketika saya mencoba dan masuk.Jawaban:
Edit (sebagai root)
/etc/ssh/sshd_config
. Tambahkan yang berikut untuk itu:Port 1234
menyebabkan SSH untuk mendengarkan pada port 1234. Anda dapat menggunakan port yang tidak digunakan mulai 1 hingga 65535. Disarankan untuk memilih port istimewa (port 1-1024) yang hanya dapat digunakan oleh root. Jika daemon SSH Anda berhenti bekerja karena suatu alasan, aplikasi jahat tidak dapat memotong koneksi.PermitRootLogin
melarang login root langsung.AllowUsers jim
memungkinkan penggunajim
untuk masuk melalui SSH. Jika Anda tidak harus masuk dari mana-mana, Anda bisa membuatnya lebih aman dengan membatasi jim ke alamat IP (ganti 1.2.3.4 dengan alamat IP Anda yang sebenarnya):Perubahan pada file konfigurasi
/etc/ssh/sshd_config
tidak segera diterapkan, untuk memuat ulang konfigurasi, jalankan:sumber
root
login, bagaimanapun, (mungkin Anda masih menyiapkan server), Anda harus mengaturPermitRootLogin
untukyes
dan juga menambahkanroot
untukAllowUsers
.useradd -m -G sudo,adm -s /bin/bash mecharok
danpasswd mecharok
AllowUsers username1,username2
untuk membatasi login SSH ke pengguna tersebut. Pastikan itusshd
dimuat ulang. Jika ini tidak membantu, silakan buat pertanyaan baru.SSH sangat pilih-pilih tentang izin direktori dan file. Pastikan bahwa:
Salin kunci publik Anda ke file otor_keys.
Ada NO perlu untuk menambahkan pengguna untuk / etc / ssh / ssh_config.
sumber
~./ssh
sebagai root dan tidak pernah memberikan kepemilikan pengguna./root/.ssh/authorized_keys
bukan/home/bob/.ssh/authorized_keys
.ssh_config
. Menyiapkan direktori dan file itu sudah cukup.sudo su --login {user}
) dan menjalankanssh-keygen
-> Folder ".ssh", kunci + cert dan izin selesai. Cukup buat otor_keys sesuai instruksi Anda.Akan ada petunjuk
/var/log/auth.log
mengapa SSH (atau PAM) menolak upaya login. Petunjuk tambahan dapat ditemukan dengan menggunakan-v
opsi dengan klien ssh . Beberapa situasi umum, beberapa disebutkan dalam jawaban lain:man passwd
, coba mengatur ulang kata sandi atau memeriksa konten/etc/shadow
)./etc/ssh/sshd_config
dikonfigurasi untuk melarang login (DenyUsers
,AllowUsers
,PasswordAuthentication
,PubkeyAuthentication
,UsePAM
dll, lihatman sshd_config
)./etc/shells
./etc/ssh
,/home/jim/.ssh
,/home/jim/.ssh/*
, dllSaya juga merekomendasikan menggunakan adduser (bukan useradd ) untuk menambahkan pengguna baru; itu sedikit lebih ramah tentang berbagai pengaturan akun default.
Selama pengguna bukan bagian dari
admin
grup, mereka tidak akan dapat melakukan sudo untuk me -root. Bagi mereka untuk menggunakan su , Anda akan perlu untuk menetapkan password root (passwd root
), setelah itu saya sarankan pengaturanPermitRootLogin=no
di/etc/ssh/sshd_config
.sumber
Saya bisa saja salah tetapi saya selalu harus menginstal daemon server sebelum saya dapat menghubungkan (Setidaknya di desktop) ssh diinstal secara default tetapi itu hanya klien
perintah ini menginstal server
sudo apt-get install openssh-server
Anda dapat mengubah port dan menghentikan login root dengan mengedit
/etc/ssh/sshd_config
Ini mengharuskan Anda untuk me-restart layanan.
sudo service ssh restart
sumber
sudo /etc/init.d/ssh reload
gantinya, tetapi informasi yang baik tetap.Jim tidak akan memiliki akses SSH sampai Anda menetapkan kata sandi. Sebagai root jalankan:
Jika perintah ini mengembalikan "!" karakter lalu masuk dinonaktifkan untuk akun ini. Eksekusi
passwd jim
sebagai root akan meminta Anda untuk string kata sandi baru dan dikonfirmasi setelah perintah grep di atas harus mengembalikan string hash yang mewakili kata sandi untuk jim.Pastikan juga untuk memverifikasi bahwa jim memiliki shell login, yang ditetapkan secara default, dan direktori home yang ada.
Harap dicatat posting lekensteyn untuk informasi tentang memodifikasi pengaturan server SSH.
sumber
Dalam kasus saya, saya memiliki grup yang diizinkan mengakses dan pengguna bukan bagian darinya. Ini menyelesaikannya untuk saya.
Menggunakan contoh di atas dengan pengguna
jim
dan menganggap anggota grupjim
sebagai itu hanya grup (mengeluarkangroups
perintah saat masukjim
untuk menemukan grup Anda adalah bagian dari). Dalam/etc/ssh/sshd_config
file saya, saya punyaAllowGroups sshusers
entri dan dengan demikian perlu ditambahkanjim
kesshusers
grup. Di bawah ini adalah bagaimana ini akan dicapai:Ganti grup dan pengguna Anda sesuai konfigurasi Anda.
sumber
jim
sebagai pengguna dummy untuk membantu memberikan konteks. artikel di sini menjelaskannya dengan baik.Mungkin ada beberapa kasus yang
PasswordAuthentication
dinonaktifkan secara default.Mohon periksa
/etc/ssh/sshd_config
dan pastikan bahwaPasswordAuthentication
atribut diatur keyes
.sumber
@Lekensteyn Saya tidak dapat meninggalkan komentar untuk jawaban pertanyaan karena saya tidak memiliki reputasi - tetapi saya mencoba menambahkan
ke file / etc / ssh / sshd_config saya dan sekarang saya tidak bisa lagi ssh dengan pengguna yang sudah ada atau pengguna yang baru.
sumber
AllowUsers existingUser@* newUser@*