我在虚拟机中有一个12.10服务器设置,其网络设置为桥接(实际上将被视为连接到交换机的计算机)。
我通过安装了opensshd,apt-get
并且能够使用腻子和用户名和密码连接到服务器。
然后,我着手尝试使其使用公/私钥身份验证。我做了以下事情:
- 使用PuttyGen生成密钥。
- 将公共密钥移到
/etc/ssh/myusername/authorized_keys
(我正在使用加密的主目录)。 设置
sshd_config
如下:PubkeyAuthentication yes AuthorizedKeysFile /etc/ssh/%u/authorized_keys StrictModes no PasswordAuthentication no UsePAM yes
当我使用腻子或WinSCP连接时,出现一条错误消息,提示没有可用的支持的身份验证方法(服务器发送了公钥)。
如果sshd
以调试模式运行,则会看到:
PAM: initializing for "username"
PAM: setting PAM_RHOST to "192.168.1.7"
PAM: setting PAM_TTY to "ssh"
userauth-request for user username service ssh-connection method publickey [preauth]
attempt 1 failures 0 [preauth]
test whether pkalg/pkblob are acceptable [preauth[
Checking blacklist file /usr/share/ssh/blacklist.RSA-1023
Checking blacklist file /etc/ssh/blacklist.RSA-1023
temporarily_use_uid: 1000/1000 (e=0/0)
trying public key file /etc/ssh/username/authorized_keys
fd4 clearing O_NONBLOCK
restore_uid: 0/0
Failed publickey for username from 192.168.1.7 port 14343 ssh2
Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]
do_cleanup [preauth]
monitor_read_log: child log fd closed
do_cleanup
PAM: cleanup
为什么会发生这种情况,我该如何解决?