Sen*_*ran 26 server ssh login openssh
我有一个使用 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
Run Code Online (Sandbox Code Playgroud)
通过 webmin(命令外壳),我创建了一个名为 'senthil' 的新用户并将这个新用户添加到 'sudo' 组。
sudo adduser -y senthil
sudo adduser senthil sudo
Run Code Online (Sandbox Code Playgroud)
我尝试在“webmin”中使用这个新用户“senthil”登录。我能够成功登录。
当我尝试通过 SSH 从我的终端连接 ubuntu 服务器时,
ssh senthil@SERVER_IP
Run Code Online (Sandbox Code Playgroud)
它要求我输入密码。输入密码后,显示:
Permission denied, please try again.
Run Code Online (Sandbox Code Playgroud)
在一些研究中,我意识到,我需要为此监视服务器的身份验证日志。我的身份验证日志 (/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
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下方法进行调试时:
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:
Run Code Online (Sandbox Code Playgroud)
对于密码,我输入的值与我通常用于“ubuntu”用户的值相同。
任何人都可以指导我问题出在哪里并为此问题提出一些解决方案吗?
ger*_*ijk 13
您已锁定帐户。
从联机帮助页usermod(8):
-L, --lock
Lock a user's password. This puts a '!' in front of the encrypted password,
effectively disabling the password.
Run Code Online (Sandbox Code Playgroud)
现在看看你的shadow行:
ubuntu:!$6$rWDSG...HSi1:15347:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
解锁:
usermod -U ubuntu
Run Code Online (Sandbox Code Playgroud)
重要的提示!如果此用户已预安装在系统上,则可能出于某种原因(安全原因)将其锁定,但我无法为您决定,因为这显然不是常规的 Ubuntu 安装。
如果以上让您感到不舒服,您可以创建一个单独的用户:
sudo adduser username
Run Code Online (Sandbox Code Playgroud)
并回答问题。您应该可以正常登录。还可以sudo通过将其添加到sudo组来使其成为 root(使用):
sudo adduser username sudo
Run Code Online (Sandbox Code Playgroud)
如果您需要ubuntu在命令行上切换到用户,则必须使用提升的权限,因为您无法提供凭据的原因与无法使用 SSH 登录的原因相同。现在,使用 SSH 作为 登录username,并运行它成为ubuntu:
sudo su -l ubuntu
Run Code Online (Sandbox Code Playgroud)
出于安全原因,我不建议使用root直接登录。
小智 10
这不是这个问题的确切答案。但就我而言,有多余的线条。(有两次相同的线路)
PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)
并且
AllowUsers otheruser
Run Code Online (Sandbox Code Playgroud)
您应该将“root”用户添加到此行或注释此行。
并重新启动 ssh service sshd restart
我有同样的问题,我花了好几个小时。
但是,我注意到这是一个错误的密码,因为服务器 snd 客户端的键盘布局之间存在差异:
在服务器中,我认为我设置了密码:WEwd@ds
而且,我注意到这@是"在服务器键盘布局中。
所以正确的密码是: WEwd"ds
因此,您需要检查:
我找到了问题所在并修复了。
我创建了一个新用户(名为:senthil)并将其用于 SSH。在Ubuntu中,我感觉当我们创建一个新用户时,默认情况下root用户的密码会分配给新用户。即使这样,也要重置新密码并为新创建的用户分配一些新密码。
重置用户密码并在 sshd_config 中进行以下更改后,现在我可以将所有系统(从我的网络)连接到远程服务器。
请注意:我已经关闭了所有 SSH 身份验证(如 RSAAuthentication、PubkeyAuthentication 和 KerberosAuthentication)。我只打开了 PasswordAuthentication。
谢谢。
| 归档时间: |
|
| 查看次数: |
365808 次 |
| 最近记录: |