无密钥 SSH 到 Ubuntu

无密钥 SSH 到 Ubuntu

我正在尝试使用 Windows 上的 PuTTY 通过 SSH 连接到 Ubuntu 机器。

我使用 PuttyKeygen 创建了公钥和私钥,并将公钥/home/[user]/.ssh/authorized_keys作为一行添加到服务器的文件中,附加[user@server]到末尾,并在开头添加 ssh-rsa,因此它看起来像:

ssh-rsa [key] [user]@[server]

这在一行上;authorized_keyschmod 是 600,服务器上的 ~/.ssh 文件夹是 700。根据本教程

当我尝试使用 PuTTY 中的私钥文件时,仍然收到以下响应:

“服务器拒绝我们的密钥”

以下是会话日志:

2011-10-08 23:43:58 Looking up host "server"
2011-10-08 23:43:58 Connecting to server port 22
2011-10-08 23:43:58 Server version: SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3
2011-10-08 23:43:58 We claim version: SSH-2.0-PuTTY_Release_0.60
2011-10-08 23:43:58 Using SSH protocol version 2
2011-10-08 23:43:58 Doing Diffie-Hellman group exchange
2011-10-08 23:43:58 Doing Diffie-Hellman key exchange with hash SHA-256
2011-10-08 23:43:59 Host key fingerprint is:
2011-10-08 23:43:59 ssh-rsa 2048 be:32:9b:69:e9:fb:5d:08:71:3e:08:09:4d:b2:c8:b4
2011-10-08 23:43:59 Initialised AES-256 SDCTR client->server encryption
2011-10-08 23:43:59 Initialised HMAC-SHA1 client->server MAC algorithm
2011-10-08 23:43:59 Initialised AES-256 SDCTR server->client encryption
2011-10-08 23:43:59 Initialised HMAC-SHA1 server->client MAC algorithm
2011-10-08 23:43:59 Reading private key file "C:\Users\User\.ssh\id_rsa.ppk"
2011-10-08 23:43:59 Offered public key
2011-10-08 23:43:59 Server refused public key

这是我在 auth.log 文件中看到的内容

Oct  9 01:53:12 [server] sshd[1818]: Connection closed by [client-ip]
Oct  9 01:53:12 [server] sshd[1818]: Transferred: sent 3104, received 2008 bytes
Oct  9 01:53:12 [server] sshd[1818]: Closing connection to [client-ip] port 51499
Oct  9 01:53:12 [server] sshd[1800]: pam_unix(sshd:session): session closed for user [user]
Oct  9 01:53:15 [server] sshd[1786]: Connection closed by [client-ip]
Oct  9 01:53:15 [server] sshd[1786]: Transferred: sent 1944288, received 9040 bytes
Oct  9 01:53:15 [server] sshd[1786]: Closing connection to [client-ip] port 51498
Oct  9 01:53:15 [server] sshd[1764]: pam_unix(sshd:session): session closed for user [user]
Oct  9 01:53:20 [server] sshd[1933]: Set /proc/self/oom_score_adj to 0
Oct  9 01:53:20 [server] sshd[1933]: Connection from [client-ip] port 51501
Oct  9 01:53:20 [server] sshd[1933]: Failed publickey for [user] from [client-ip] port 51501 ssh2

这是 sshd_config 文件

# 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
#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 DEBUG#INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /home/%u/.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 yes#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 no

# 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

答案1

创建~/.ssh/authorized_keys文件时,你根本不需要修改粘贴到其中的行。此行应该是确切地与 ssh 客户端上的公钥文件内容相同。您关于附加 [user@server] 和添加 ssh-rsa 的评论表明您可能一开始就没有粘贴正确的行。修改行以添加这些位不会有帮助。

答案2

有点愚蠢的问题(如果我有权利的话会是一个评论)...

您确定尝试以正确的用户身份登录吗?尝试在 Putty 中以 user@host 身份连接,如下面的示例屏幕截图所示。

腻子指针

否则,您的设置对我来说看起来都很合理。

相关内容