Masuk ke server ssh: Izin ditolak, silakan coba lagi

9

Saya mencoba masuk ke server ssh saya menggunakan nama pengguna dan kata sandi, tetapi saya mendapatkan kesalahan ini setelah memasukkan kata sandi yang benar:

Permission denied, please try again.

Saya bisa masuk menggunakan pubkey di komputer lain, tetapi saya TIDAK menonaktifkan otentikasi kata sandi biasa. Satu-satunya hal yang saya nonaktifkan adalah login root.

Ini file sshd_config saya:

# Paket file konfigurasi yang dihasilkan
# Lihat halaman manual sshd_config (5) untuk detailnya

# Port, IP, dan protokol apa yang kami dengarkan
Port 22
# Gunakan opsi ini untuk membatasi antarmuka / protokol mana sshd akan diikat
#ListenAddress ::
#ListenAddress 0.0.0.0
Protokol 2
# HostKeys untuk versi protokol 2
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
HostKey / etc / ssh / ssh_host_ecdsa_key
Pemisahan #Privilege dihidupkan untuk keamanan
GunakanPrivilegePasangan ya

# Seumur hidup dan ukuran kunci server versi 1 yang sementara
KeyRegenerationInterval 3600
ServerKeyBits 768

# Masuk
SyslogFacility AUTH
INFO LogLevel

# Autentikasi:
LoginGraceTime 120
PermitRootLogin no
StrictModes ya

RSAAtentikasi ya
PubkeyAuthentication ya
#AuthorizedKeysFile% h / .ssh / otor_keys

# Jangan membaca file ~ / .rhosts dan ~ / .shosts pengguna
Abaikan saja ya
# Agar ini berfungsi, Anda juga memerlukan kunci host di / etc / ssh_known_hosts

RhostsRSAAtententikasi No.
# mirip untuk versi protokol 2
HostbasedAuthentication no
# Membatalkan komentar jika Anda tidak percaya ~ / .ssh / known_hosts untuk RhostsRSAAuthentication
#IgnoreUserKnownHosts ya

# Untuk mengaktifkan kata sandi kosong, ubah ke ya (TIDAK DIANJURKAN)
PermitEmptyPasswords no

# Ubah ke ya untuk mengaktifkan kata sandi respons-tantangan (waspadalah dengan masalah
# beberapa modul dan utas PAM)
ChallengeResponseAuthentication no

# Ubah menjadi tidak untuk menonaktifkan kata sandi teks yang disetel
PasswordAuthentication ya

# Opsi Kerberos 
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd ya
#KerberosTicketCleanup ya

# Opsi GSSAPI
#GSSAPIAuthentication no
#GSSAPICleanupCredentials ya

X11 Meneruskan ya
X11DisplayOffset 10
PrintMotd no
PrintLastLog ya
TCPKeepAlive ya
#UseLogin no

#MaxStartups 10:30:60 
#Banner /etc/issue.net

# Izinkan klien untuk lulus variabel lingkungan lokal
AcceptEnv LANG LC_ *

Subsistem sftp / usr / lib / openssh / sftp-server

# Tetapkan ini ke 'ya' untuk mengaktifkan otentikasi PAM, pemrosesan akun,
# dan pemrosesan sesi. Jika ini diaktifkan, otentikasi PAM akan
# diizinkan melalui ChallengeResponseAuthentication dan
# PasswordAuthentication. Tergantung pada konfigurasi PAM Anda,
# Otentikasi PAM melalui ChallengeResponseAuthentication dapat melewati
# pengaturan "PermitRootLogin tanpa kata sandi".
# Jika Anda hanya ingin akun PAM dan sesi cek berjalan tanpa
# Otentikasi PAM, lalu aktifkan ini tetapi tetapkan PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
GunakanPAM ya 
IgnoreUserKnownHosts no
PasswordAuthentication ya

Saya telah menambahkan 2 baris terakhir dalam upaya terbaru untuk membuatnya berfungsi. (Saya memilikinya di vps saya yang lain, dan mereka bekerja di sana)

Inilah daftar direktori ~ / .ssh / dari pengguna saya:

ls -la /home/skerit/.ssh
total 16
drwx ------ 2 skerit skerit 4096 2011-06-25 15:11.
drwxr-xr-x 4 skerit skerit 4096 2011-07-07 21:05 ..
-rw-r - r-- 1 skerit skerit 1882 2011-06-25 15:15 berwenang_kunci
-rw-r - r-- 1 skerit skerit 884 2011-06-23 22:59 known_hosts 

Ini adalah output dari / usr / sbin / sshd -d:

debug1: userauth-request untuk layanan pengguna skerit ssh-koneksi metode tidak ada
debug1: percobaan 0 kegagalan 0
debug1: PAM: inisialisasi untuk "skerit"
debug1: PAM: mengatur PAM_RHOST ke "82.197.70.70"
debug1: PAM: mengatur PAM_TTY ke "ssh"
debug1: userauth-request untuk layanan pengguna skerit ssh-connection metode publickey
debug1: percobaan 1 kegagalan 0
debug1: menguji apakah pkalg / pkblob dapat diterima
debug1: Memeriksa file daftar hitam /usr/share/ssh/blacklist.RSA-2048
debug1: Memeriksa file daftar hitam /etc/ssh/blacklist.RSA-2048
debug1: sementara_use_uid: 1000/1000 (e = 0/0)
debug1: mencoba file kunci publik /home/skerit/.ssh/authorized_keys
debug1: fd 4 membersihkan O_NONBLOCK
debug1: restore_uid: 0/0
debug1: sementara_use_uid: 1000/1000 (e = 0/0)
debug1: mencoba file kunci publik /home/skerit/.ssh/authorized_keys2
debug1: Tidak dapat membuka kunci resmi '/home/skerit/.ssh/authorized_keys2': Tidak ada file atau direktori seperti itu
debug1: restore_uid: 0/0
Publickey gagal untuk skerit dari port 82.197.70.70 57154 ssh2
debug1: userauth-request untuk layanan pengguna skerit ssh-connection metode password
debug1: percobaan 2 kegagalan 1
debug1: PAM: otentikasi kata sandi gagal untuk skerit: Kegagalan otentikasi
Kata sandi gagal untuk skerit dari 82.197.70.70 port 57154 ssh2 

Saya kemudian mencoba masuk ke server ssh DARI server ssh (lokal) menggunakan nama pengguna dan kata sandi yang SAMA, dan ternyata berhasil. Ini ada di file auth.log:

8 Jul 12:21:50 vpsnl1 sshd [27298]: debug1: tidak dapat membuka file kunci '/ etc / ssh / ssh_host_ecdsa_key': Tidak ada file atau direktori tersebut
8 Jul 12:21:50 vpsnl1 sshd [27298]: error: Tidak dapat memuat kunci host: / etc / ssh / ssh_host_ecdsa_key
8 Jul 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): kegagalan otentikasi; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 pengguna =
skerit
8 Juli 12:23:50 vpsnl1 sshd [27439]: Server mendengarkan pada port 0.0.0.0 22.
8 Juli 12:23:50 vpsnl1 sshd [27439]: Server mendengarkan pada :: port 22.
8 Jul 12:24:07 vpsnl1 sshd [27458]: error: Tidak dapat memuat kunci host: / etc / ssh / ssh_host_ecdsa_key
8 Juli 12:24:14 vpsnl1 sshd [27458]: Kata sandi yang diterima untuk skerit dari 127.0.0.1 port 57667 ssh2
8 Juli 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: session): sesi dibuka untuk pengguna skerit oleh (uid = 0)
8 Juli 12:24:25 vpsnl1 sshd [27471]: Menerima putuskan sambungan dari 127.0.0.1: 11: terputus oleh pengguna
8 Juli 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: session): sesi ditutup untuk skerit pengguna 
skerit
sumber
Bisakah Anda menambahkan ssh-config Anda?
Bart De Vos
Baiklah, file konfigurasi ditambahkan!
skerit
Bagaimana dengan izin pada .ssh? Bisakah Anda memposting ls -la ~ / .ssh di server?
mkudlacek
Oke, saya sudah menambahkan daftar file pengguna yang saya coba masuki.
skerit
1
Authorized_keys seharusnya tidak bisa dibaca dunia, tapi itu tidak menjelaskan mengapa Anda tidak bisa masuk dengan kata sandi. Bisakah Anda melakukannya su skeritdi akun Anda?
mkudlacek

Jawaban:

9

Apakah Anda yakin bahwa akun pengguna yang Anda coba akses dikonfigurasi dengan benar? Jika Anda masuk sebagai root pada sistem, dapatkah Anda suke akun pengguna?

# su - username

Apa yang Anda lihat di log setelah upaya koneksi gagal? Pada banyak sistem, sshd akan masuk ke sesuatu /var/log/secureatau /var/log/auth.log. Juga, saya perhatikan bahwa Anda telah PasswordAuthenticationmengaktifkan tetapi ChallengeResponseAuthenticationmenonaktifkan. Apakah Anda melihat perilaku yang sama jika Anda mengaktifkan ChallengeResponseAuthentication?

Berikut adalah beberapa langkah diagnostik umum untuk digunakan ketika Anda memiliki masalah ssh:

  • Aktifkan diagnostik verbose di ssh:

    ssh -v host.example.com
    

    Ini akan menyebabkan klien mengeluarkan berbagai pesan diagnostik saat ia menegosiasikan koneksi. Ini akan sering memberikan petunjuk untuk masalah tersebut.

  • Jalankan server dalam mode debug.

    Di server Anda, hentikan sshd, lalu jalankan dari baris perintah seperti ini:

    /usr/sbin/sshd -d
    

    Ini akan menghasilkan logging debug verbose stderryang akan sangat sering berisi informasi yang berguna.

Jika tidak satu pun dari ini membantu Anda mencari tahu apa yang terjadi, apakah Anda akan menambahkan output ke pertanyaan Anda?

larsks
sumber
Ok, saya sudah menambahkan hasilnya. Pada dasarnya: ketika saya mencoba login jarak jauh ia mengatakan kata sandinya tidak bagus, ketika saya mencoba login lokal dikatakan bahwa kata sandinya baik dan mengizinkan saya masuk.
skerit
2
Ini WS password. Saya mengubah kata sandi melalui konsol web (beberapa aplikasi java) dan meskipun kata sandi yang dimasukkan adalah IDENTIK untuk apa yang saya ketik di konsol dempul saya, entah bagaimana nilai ascii pasti berbeda. Saya mengubahnya menjadi sesuatu yang lebih sederhana, masuk dengan cara yang benar melalui dempul, dan mengubahnya kembali. Sekarang berhasil.
skerit
@skerit - mungkin memiliki masalah pengkodean karakter, lalu - mungkin UTF8 vs ASCII?
warren
Senang mendengar semuanya bekerja!
larsks
Mengalami masalah yang sama dengan @skerit setelah melakukan perubahan kata sandi dari konsol web DigitalOcean.
Daniel