SSH-Fehler: Berechtigung verweigert, bitte versuchen Sie es erneut

23

Ich habe einen Ubuntu-Server eingerichtet, der die amazon ec2-Instanz verwendet. Ich muss meinen Desktop (der auch ein Ubuntu-Computer ist) über SSH mit dem Ubuntu-Server verbinden.

Ich habe open-ssh auf dem Ubuntu-Server installiert. Ich benötige alle Systeme meines Netzwerks, um den Ubuntu-Server mit SSH zu verbinden (keine Verbindung über PEM- oder Pub-Schlüssel erforderlich).

Daher öffnete SSH Port 22 für meine statische IP in Sicherheitsgruppen (AWS).

Meine SSHD-CONFIG-Datei ist:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

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

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Über webmin (Command Shell) habe ich einen neuen Benutzer mit dem Namen 'senthil' erstellt und diesen neuen Benutzer der Gruppe 'sudo' hinzugefügt.

sudo adduser -y senthil
sudo adduser senthil sudo

Ich habe versucht, mich mit diesem neuen Benutzer 'senthil' in 'webmin' anzumelden. Ich konnte mich erfolgreich einloggen.

Als ich versuchte, Ubuntu-Server von meinem Terminal über SSH zu verbinden,

ssh senthil@SERVER_IP

Ich wurde aufgefordert, ein Passwort einzugeben. Nach der Passworteingabe wurde angezeigt:

Permission denied, please try again.

Bei einigen Nachforschungen wurde mir klar, dass ich das Authentifizierungsprotokoll meines Servers überwachen muss. Ich habe den folgenden Fehler in meinem Authentifizierungsprotokoll (/var/log/auth.log)

Jul  2 09:38:07 ip-192-xx-xx-xxx sshd[3037]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=MY_CLIENT_IP  user=senthil
Jul  2 09:38:09 ip-192-xx-xx-xxx sshd[3037]: Failed password for senthil from MY_CLIENT_IP port 39116 ssh2

Als ich versuchte zu debuggen mit:

ssh -v senthil@SERVER_IP


    OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to SERVER_IP [SERVER_IP] port 22.
debug1: Connection established.
debug1: identity file {MY-WORKSPACE}/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file {MY-WORKSPACE}/.ssh/id_rsa-cert type -1
debug1: identity file {MY-WORKSPACE}/.ssh/id_dsa type -1
debug1: identity file {MY-WORKSPACE}/.ssh/id_dsa-cert type -1
debug1: identity file {MY-WORKSPACE}/.ssh/id_ecdsa type -1
debug1: identity file {MY-WORKSPACE}/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-7ubuntu1
debug1: match: OpenSSH_5.8p1 Debian-7ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA {SERVER_HOST_KEY}
debug1: Host 'SERVER_IP' is known and matches the ECDSA host key.
debug1: Found key in {MY-WORKSPACE}/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: password
debug1: Next authentication method: password
senthil@SERVER_IP's password: 
debug1: Authentications that can continue: password
Permission denied, please try again.
senthil@SERVER_IP's password: 

Als Passwort habe ich den gleichen Wert eingegeben, den ich normalerweise für Ubuntu-Benutzer verwende.

Kann mich jemand bitte anleiten, wo das Problem liegt, und eine Lösung für dieses Problem vorschlagen?

Senthil Kumaran
quelle
Sie haben das Passwort für den ubuntuBenutzer festgelegt? Und Sie sind sicher, dass Sie es richtig eingeben? Nehmen Sie auch die Ausgabe von id ubunturun von Ihrem Server in Ihre Frage auf. Hast du den Account vielleicht gesperrt? Berücksichtigen Sie die Ausgabe von grep ^ubuntu /etc/passwd /etc/shadow(und ändern Sie das verschlüsselte Kennwort nur in der Mitte der Zeichenfolge).
Gertvdijk
Eigentlich habe ich keinen eigenen Benutzer für SSH angelegt. Ich habe den Benutzer verwendet, den ich normalerweise für die Serveranmeldung verwende. Die Ausgabe von grep ^ ubuntu / etc / passwd / etc / shadow lautet: / etc / passwd: ubuntu: x: 1000: 1000: Ubuntu: / home / ubuntu: / bin / bash / etc / shadow: ubuntu:! $ 6 $ rWDSGDSGhv $ WDFDASGFDAG.Pz0ob54 / epaDSGDSGQKnKqMFG..OieFiLUndF6KnSDGHDSGHmTMjAGHDSH214I7FHSi1: 15347: 0: 99999: 7 :::
Senthil Kumaran,
Nochmals vielen Dank für Ihre klare Antwort. Wenn ich einen separaten Benutzer für SSH erstellen und das zu einer SSH-Konfiguration hinzufügen muss, können Sie mir bitte einige Schritte dazu geben.
Senthil Kumaran

Antworten:

11

Sie haben das Konto gesperrt.

Aus der Manpage von usermod(8):

-L, --lock
           Lock a user's password. This puts a '!' in front of the encrypted password,
           effectively disabling the password.

Schauen Sie sich jetzt Ihre shadowZeile an:

ubuntu:!$6$rWDSG...HSi1:15347:0:99999:7:::

Entsperre es:

usermod -U ubuntu

Wichtige Notiz! Wenn dieser Benutzer auf dem System vorinstalliert ist, ist er möglicherweise aus Sicherheitsgründen gesperrt, aber das kann ich für Sie nicht entscheiden, da dies anscheinend keine reguläre Ubuntu-Installation ist.


Wenn Sie sich durch das oben Gesagte unwohl fühlen, können Sie einen separaten Benutzer erstellen:

sudo adduser username

und beantworte die Fragen. Sie sollten sich gut einloggen können. Ermöglichen Sie es auch, root zu werden (verwenden sudo), indem Sie es der sudoGruppe hinzufügen :

sudo adduser username sudo

Wenn Sie in ubuntuder Befehlszeile zum Benutzer wechseln müssen , müssen Sie Ihre erhöhten Berechtigungen verwenden, da Sie aus demselben Grund keine Anmeldeinformationen angeben können, aus dem Sie sich auch nicht mit SSH anmelden können. Melden Sie sich jetzt mit SSH als usernamean und führen Sie Folgendes aus ubuntu:

sudo su -l ubuntu

Aus Sicherheitsgründen würde ich nicht empfehlen root, sich direkt anzumelden.

gertvdijk
quelle
Ich habe das Gefühl, dass der Benutzer 'ubuntu' aus Sicherheitsgründen gesperrt ist. Um diese Verwirrung zu vermeiden, habe ich auch versucht, mich mit meinem Root-Benutzerkonto anzumelden. Es wird immer noch derselbe Fehler in der Datei terminal und auth.log angezeigt.
Senthil Kumaran
Du meinst den rootAccount? Dieses Konto hat kein Passwort und ist standardmäßig gesperrt. Hast du es aktiviert?
Alaa Ali
@ Kamal Ich habe meine Antwort so aktualisiert, dass sie die Vorgehensweise enthält.
Gertvdijk
Danke gertvdijk. Ich werde das jetzt versuchen. Ich habe auch meine Frage überarbeitet und die Ausgabe von ssh -v ubuntu @ SERVER_IP
Senthil Kumaran
@Alaa: Nein. Ich habe es nicht aktiviert. Ich habe gerade versucht, mich mit root anzumelden. Zur Zeit benutze ich den Benutzer: 'ubuntu' für die Anmeldung (in webmin)
Senthil Kumaran
7

Ich habe das gleiche Problem und es dauert für mich viele Stunden.

Ich stelle jedoch fest, dass es ein falsches Passwort ist, da das Tastaturlayout des Servers und des Clients unterschiedlich ist:

In Server, dachte ich , dass ich Passwort gesetzt: WEwd@ds Und ich fest , dass @ist "in dem Server - Tastaturlayout.

Das richtige Passwort lautet also: WEwd"ds


Daher müssen Sie Folgendes überprüfen:

Tastaturbelegung des Servers [vs] Tastaturbelegung der Workstation

Abdennour TOUMI
quelle
1
Das war's. Mein Raspbian-System wird bei jedem Neustart auf die GB-Tastatur zurückgesetzt, und ich muss unter Einstellungen-> Tastatur und Maus die Einstellungen auf US zurücksetzen. Vielen Dank, dass ich auf diese Antwort gewartet habe, damit ich sie im Januar 2018 benötige.
SDsolar
Ich hatte das gegenteilige Problem: Windows hat aus irgendeinem Grund das Tastaturlayout geändert, und ich habe über meinen SSH-Client das falsche Kennwort eingegeben.
Mwfearnley
5

Dies ist keine genaue Antwort auf diese Frage. In meinem Fall gab es jedoch redundante Leitungen. (Es gab die gleiche Zeile zweimal)

PermitRootLogin yes

und auch

AllowUsers otheruser

Sie sollten dieser Zeile den Benutzer 'root' hinzufügen oder diese Zeile kommentieren.

Und starte ssh neu service sshd restart

Sadee
quelle
Es hat für mich funktioniert
VJ Ranga
2

Ich habe gefunden, wo das Problem liegt und behoben.

Ich habe einen neuen Benutzer (mit dem Namen: senthil) erstellt und ihn nur für SSH verwendet. In Ubuntu habe ich das Gefühl, dass beim Erstellen eines neuen Benutzers standardmäßig das Kennwort des Root-Benutzers dem neuen Benutzer zugewiesen wird. Setzen Sie auch dann das Kennwort zurück und weisen Sie den neu erstellten Benutzern ein neues Kennwort zu.

Nachdem das Benutzerkennwort zurückgesetzt wurde und die folgenden Änderungen in sshd_config vorgenommen wurden, kann ich jetzt alle meine Systeme (von meinem Netzwerk) mit dem Remote-Server verbinden.

Bitte beachten Sie: Ich habe alle SSH-Authentifizierungen (wie RSAAuthentication, PubkeyAuthentication und KerberosAuthentication) deaktiviert. Ich habe nur die PasswordAuthentication aktiviert.

Danke dir.

Senthil Kumaran
quelle
"Ich habe das Gefühl, dass beim Erstellen eines neuen Benutzers dem neuen Benutzer standardmäßig das Kennwort des Root-Benutzers zugewiesen wird." <- Nein, Sie werden aufgefordert, ein Passwort mit festzulegen adduser. Hast du useraddstattdessen verwendet?
Gertvdijk
Ich habe die folgenden zwei Befehle verwendet: "sudo adduser -y senthil" und "sudo adduser senthil sudo". Da ich möglicherweise Benutzer mit der webmin-Befehlszeile erstellt habe, wurde ich nicht aufgefordert, während der Benutzererstellung ein Kennwort einzugeben
Senthil Kumaran
gertvdijk, bedenke, dass ich nur Webmin-Zugang für einen Server habe. In der Webmin-Befehlszeile ist die GUI-Eingabeaufforderung oder die schrittweise Installation nicht möglich. Ich habe das Gefühl, dass ich in der Webmin-Befehlszeile nicht aufgefordert wurde, ein Kennwort einzugeben. Was kann ich in solchen Fällen tun? Gibt es einen anderen Befehl als "sudo adduser -y senthil", mit dem ich in EINEM BEFEHL Passwörter erstellen und Benutzern zuweisen kann? Entschuldigung für die lange Frage.
Senthil Kumaran
Aber Sie haben auf einem EC2 Konsolenzugriff, oder? Natürlich ist die Ausführung dieser Befehle über Webmin SEHR eingeschränkt. Es tut mir leid, dass ich dies nicht explizit in der Konsole, sondern in Webmin ausgeführt habe (dies schränkt Ihre Optionen / Fähigkeiten wirklich ein).
Gertvdijk
Du hast das so gemeint, du änderst einfach das Passwort dieses Benutzers und alles in Ordnung? Ich habe das gleiche Problem. In meinem Fall bekommen alle Benutzer mit root diesen Fehler ?!
ShgnInc
2

Ich habe eine Lösung für Sie In Ihrer sshd_config-Datei fügen Sie diese folgende Zeile am Ende der Datei hinzu:

AllowUsers senthil

In dieser Zeile kann Ihr Server eine Verbindung zum Benutzernamen herstellen: senthil. Ein anderer Benutzer wird abgelehnt. Gehen Sie danach auf Ihrem Server zu Ihrem Terminal und geben Sie den folgenden Befehl ein:

ssh senthil@yourhostname

Getan! Viel Glück für Sie Weitere Informationen können Sie hier sehen. http://www.htpcbeginner.com/install-ssh-server-on-ubuntu-1204/

Dang_Ho
quelle
1

In meinem Fall löste dies das Problem: Auf dem Server, auf dem openssh-server ausgeführt wird, habe ich das Benutzer- (myserverusername) und Root-Kennwort (root) in das zuvor verwendete geändert:

sudo passwd myserverusername

und

sudo passwd root

Starten Sie dann den SSH-Server-Daemon neu:

sudo service ssh restart

Es ist seltsam, weil ich mich nicht erinnern kann, mein Passwort geändert zu haben

Tomás Arturo Herrera Castro
quelle
0

Überprüfen Sie Ihre /etc/hostsDatei für den verzweifelten Fall noch einmal, um sicherzustellen, dass Sie Ihren Computer nicht dazu verleiten, anzunehmen, dass ein bestimmter Hostname eine andere IP-Adresse hat als er tatsächlich ist. >. <

Alexander Taylor
quelle
0

Überprüfen sshdZugriffsliste für Zugelassene Benutzer (config - Datei)

  1. cat /etc/ssh/sshd_config
  2. AllowUsers

Sollte dies nicht der Fall sein, sollte es #wie im folgenden Beispiel auskommentiert werden.

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
ClientAliveInterval 432000
ClientAliveCountMax 0
#AllowUsers TestUser
willer
quelle
0

Ich habe viele Antworten auf diese Fragen gesehen. Auch ich habe mich dem Problem gestellt. Mein Fall war, dass meine SSH-Verbindung funktionierte, bevor ich zu Windows 10 wechselte, das automatisch aktualisiert wurde. Hat auf meinem Desktop lange nicht mehr mit Ubuntu funktioniert.

Ich bin nicht sicher, was das Problem war. Ich habe die \ etc \ hosts-Datei und die sshd_config-Datei überprüft. Alles sah in Ordnung aus. Dann habe ich beschlossen, meine Antivirus-Einstellungen zu überprüfen - Bingo, das ist das Problem!

Die Kittanwendung befand sich auf der abgelehnten Liste. Also aktiviere es ... dann melde dich erfolgreich an. Ein großer Schrei!

Niranjan Das
quelle
0

Überprüfen Sie #cat / etc / ssh / sshd_config, wenn Sie den Zeilenanfang mit "AllowUsers" gefunden haben. Fügen Sie Ihren Benutzer wie folgt hinzu: AllowUsers scom omar ahmed root

Neues Leben
quelle