我正在尝试使用 Windows 上的 PuTTY 通过 SSH 连接到 Ubuntu 机器。
我使用 PuttyKeygen 创建了公钥和私钥,并将公钥/home/[user]/.ssh/authorized_keys
作为一行添加到服务器的文件中,附加[user@server]
到末尾,并在开头添加 ssh-rsa,因此它看起来像:
ssh-rsa [key] [user]@[server]
这在一行上;authorized_keys
chmod 是 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 身份连接,如下面的示例屏幕截图所示。
否则,您的设置对我来说看起来都很合理。