我有一台 CentOS 6 服务器,我想用私钥连接它。
在 Windows 上,我使用 PuTTY Keygen 并将公钥粘贴到我的服务器中.ssh/authorized_keys2
(也尝试过authorized_keys
,不记得为什么使用authorized_keys2
)。
然后,我保存私钥“name.ppk”并将其与PuTTY(和pageant)一起使用。到那时一切都正常。连接成功。
当我尝试从另一个 Linux 系统连接时出现了问题。
我使用 puttykeygen 导出选项导出 OpenSSH 密钥并从我的其他 Linux 系统中使用它,但它不起作用。它总是说
权限被拒绝(publickey,gssapi-with-mic)
还尝试使用以下命令从其他 Linux 系统创建密钥:
ssh-keygen -t dsa
(和-t rsa
)并将公钥粘贴到我想要连接的 CentOS 服务器上。我尝试将其粘贴到两个文件(authorized_keys
和authorized_keys2
)中,但没有任何效果。
事实上,我曾尝试从另一台真正的 CentOS 服务器、同一个 Windows 7 上的一个可以使用 PuTTY 连接的 CentOS 虚拟服务器以及同一个 Windows 7 上的一个 Debian 虚拟服务器进行连接。
CentOS 虚拟服务器和 Debian 虚拟服务器可以使用密钥相互连接。
此外,配置也不同。两个虚拟服务器都sshd_config
默认使用,而主 CentOS 6 服务器的配置是我多年前发现的,旨在使其更安全,禁用无密钥登录等。
这是我的 CentOS 6 配置(没有一些注释):
Port xxxx
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin yes
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
X11Forwarding yes
UseDNS no
Subsystem sftp /usr/libexec/openssh/sftp-server