SSH错误:权限被拒绝,请重试


23

我有一个使用Amazon EC2实例的Ubuntu服务器设置。我需要使用SSH将台式机(也是ubuntu计算机)连接到ubuntu服务器。

我已经在ubuntu服务器中安装了open-ssh。我需要网络中的所有系统使用SSH连接ubuntu服务器(无需通过pem或pub密钥进行连接)。

因此,在安全组(AWS)中为我的静态IP打开了SSH端口22。

我的SSHD-CONFIG文件是:

# 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

通过webmin(Command Shell),我创建了一个名为“ senthil”的新用户,并将此新用户添加到“ sudo”组。

sudo adduser -y senthil
sudo adduser senthil sudo

我尝试使用“ webmin”中的新用户“ senthil”登录。我能够成功登录。

当我尝试通过SSH从终端连接ubuntu服务器时,

ssh senthil@SERVER_IP

它要求我输入密码。输入密码后,它显示:

Permission denied, please try again.

通过一些研究,我意识到需要为此监视服务器的身份验证日志。我的身份验证日志(/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

当我尝试使用以下命令进行调试时:

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: 

对于密码,我输入了通常用于“ ubuntu”用户的相同值。

谁能指导我解决问题所在,并提出解决方案?


您是否为ubuntu用户设置了密码?您确定输入正确吗?id ubuntu在问题中还包括服务器运行的输出。您是否锁定了帐户?考虑包括的输出grep ^ubuntu /etc/passwd /etc/shadow(并仅在字符串中间更改加密的密码)。
gertvdijk

实际上,我还没有为SSH创建任何单独的用户。我使用了通常用于服务器登录的用户。grep ^ ubuntu / etc / passwd / etc / shadow的输出为:/ etc / passwd:ubuntu:x:1000:1000:Ubuntu:/ home / ubuntu:/ bin / bash / etc / shadow:ubuntu:!$ 6 $ rWDSGDSGhv $ WDFDASGFDAG.Pz0ob54 / epaDSGDSGQKnKqQMFG..OieFiLUndF6KnSDGHDSGHmTMjAGHDSH214I7FHSi1:15347:0:99999:7 :::
Senthil Kumaran

再次感谢您的明确答复。如果我需要为SSH创建单独的用户并将其添加到某些SSH配置中,请给我一些步骤。
Senthil Kumaran

Answers:


11

您已锁定帐户。

从的联机帮助页usermod(8)

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

现在查看您的shadow行:

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

解锁:

usermod -U ubuntu

重要的提示!如果此用户已预先安装在系统上,则可能出于某种原因(安全性原因)而被锁定,但由于这显然不是常规的Ubuntu安装,因此我无法为您决定。


如果以上使您感到不舒服,则可以创建一个单独的用户:

sudo adduser username

并回答问题。您应该可以正常登录。sudo通过将其添加到sudo组中,还可以使其成为root用户(使用):

sudo adduser username sudo

如果需要ubuntu在命令行上切换到用户,则必须使用提升的特权,因为出于与无法使用SSH登录相同的原因,您不能提供凭据。现在,以SSH身份使用SSH登录username,然后运行使其成为ubuntu

sudo su -l ubuntu

出于安全原因,我不建议使用root直接登录。


我觉得用户“ ubuntu”由于安全原因而被锁定。为了避免这种混乱,我也尝试使用我的root用户帐户登录。在终端和auth.log文件中仍然出现相同的错误。
Senthil Kumaran

您的意思是root帐户?该帐户没有密码,并且默认情况下处于锁定状态。你启用了吗?
Alaa Ali

@Kamal我已经更新了我的答案,包括如何执行此操作。
gertvdijk

谢谢gertvdijk。我现在将尝试。我还编辑了我的问题,并更新了ssh -v ubuntu @ SERVER_IP的输出
Senthil Kumaran

@Alaa:否。我尚未启用它。刚刚尝试使用root登录。.目前,我正在使用用户:'ubuntu'进行登录(在webmin中)
Senthil Kumaran 2013年

7

我有同样的问题,这花了我很多时间。

但是,我注意到这是一个错误的密码,因为服务器snd客户端的键盘布局之间存在差异:

在服务器中,我认为我设置了密码:WEwd@ds 并且,我注意到这@"在服务器键盘布局中。

因此正确的密码是: WEwd"ds


因此,您需要检查:

服务器键盘布局[vs]工作站键盘布局


1
就是这样 我的Raspbian系统在每次重新启动时都会还原为GB键盘,我必须进入“偏好设置”->“键盘和鼠标”将其重置为美国。感谢您
收到

我遇到了相反的问题-Windows由于某种原因更改了键盘布局,因此我通过SSH客户端输入了错误的密码。
mwfearnley '18

5

这不是此问题的确切答案。但就我而言,有多余的线路。(两次有同一行)

PermitRootLogin yes

并且

AllowUsers otheruser

您应该在此行添加“ root”用户或对此行添加注释。

并重新启动ssh service sshd restart


它为我工作
VJ Ranga '18

2

我找到了问题所在并已解决。

我创建了一个新用户(名为:senthil),并将其用于SSH。在Ubuntu中,我觉得当我们创建一个新用户时,默认情况下,root用户的密码将分配给该新用户。即使这样,也要重置并为新创建的用户分配一些新密码。

重置用户密码并在sshd_config中进行以下更改之后,现在就可以将所有系统(从网络)连接到远程服务器。

请注意:我已经关闭了所有SSH身份验证(如RSAAuthentication,PubkeyAuthentication和KerberosAuthentication)。我仅打开了PasswordAuthentication。

谢谢。


“我觉得当我们创建一个新用户时,默认情况下,root用户的密码将分配给该新用户。” <-不,要求您使用设置密码adduser。您useradd改用了吗?
gertvdijk

我使用了以下两个命令:“ sudo adduser -y senthil”和“ sudo adduser senthil sudo”。可能是因为我使用webmin命令行创建了用户,但并没有要求我在用户创建过程中输入密码
Senthil Kumaran 2013年

gertvdijk,请考虑我仅对服务器具有webmin访问权限。在webmin命令行中,无法进行GUI提示符或分步安装。因此,我觉得在webmin命令行中,它没有要求我输入密码。在这种情况下我该怎么办?除了“ sudo adduser -y senthil”以外,是否还有其他命令可以在一个命令中创建并分配密码给用户?很抱歉,这个冗长的问题。
Senthil Kumaran 2013年

但是您可以在EC2上访问控制台,对吗?当然,通过Webmin运行这些命令非常受限制。抱歉,我不是在控制台而不是Webmin上运行它(这确实限制了您的选择/功能)。
gertvdijk

您的意思是,您只需更改该用户的密码即可,一切正常吗?我也有同样的问题。在我的情况下,包括root在内的所有用户都会收到该错误?
shgnInc 2013年

2

我为您提供解决方案在您的sshd_config文件中,将以下行添加到文件末尾:

AllowUsers senthil

此行将使您的服务器可以连接到用户名:senthil。另一个用户将被拒绝。之后,在服务器上转到终端,输入以下命令:

ssh senthil@yourhostname

做完了!祝您好运。您可以在这里查看更多信息。 http://www.htpcbeginner.com/install-ssh-server-on-ubuntu-1204/


1

就我而言,这解决了问题:在运行openssh-server的服务器中,将用户(myserverusername)和root(root)密码更改为我以前使用的密码:

sudo passwd myserverusername

sudo passwd root

然后重新启动ssh服务器守护程序:

sudo service ssh restart

很奇怪,因为我不记得更改密码了


0

绝望的是,请仔细检查/etc/hosts文件,以确保您不会欺骗您的计算机,使某个主机名具有与实际IP不同的IP。>。<


0

检查sshd允许用户的访问列表(配置文件)

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

不应设置,应将其注释掉#,如下例所示。

# 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

0

我已经看到了许多关于这个问题的答案。我也面临这个问题。我的情况是在此之前ssh连接正常工作,我改为自动升级的Windows 10。长时间无法在桌面上的Ubuntu上运行。

不知道是什么问题。我检查了\ etc \ hosts文件,sshd_config文件一切正常。然后,我决定检查我的防病毒设置-宾果游戏就是问题所在!

腻子应用程序在拒绝列表中。因此启用它...然后成功登录。大声尖叫!


0

如果发现以“ AllowUsers在其中添加用户”开头的行,请检查#cat / etc / ssh / sshd_config,如下所示:AllowUsers scom omar ahmed root

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.