日志级别信息

日志级别信息

由于某种原因,我无法在新的 CentOS 机器上不使用密码进行 ssh 连接。

我曾尝试遵循以下指南:

但两者都不起作用。我甚至检查了我的/etc/ssh/sshd_config文件。 PubkeyAuthentication yes最初被注释掉了,所以我取消注释了该行并重新启动了 sshd,但仍然无济于事。还有什么可能缺失的吗?

我尝试以 root 身份从服务器 A ssh 到服务器 B。因此,以 root 身份登录一台机器,然后以 root 身份 ssh 到下一台机器,而无需输入密码。

更新

我运行了ssh -v ...但无法复制/粘贴到这里。一切看起来都很好,直到这一行:

debug1: Next authentication method:  gssapi-with-mic
debug1: Unspecified GSS failure.  Minor Code may provide more information
Unknown code krb5 195

答案1

针对 CentOS/Red Hat/etc 的基于公钥的身份验证的简要指南...

在 SSH 客户端上:

ssh-keygen # Accept all defaults, do not enter a password.
ssh-copy-id USER@SERVER_IP
restorecon -R ~/.ssh

在 SSH 服务器上:

# Login to the server normally (with password)
restorecon -R ~/.ssh

基于公钥的身份验证现在应该可以工作了。

答案2

这些问题(通常与权限相关)更容易从服务器端进行调试。我建议您使用以下命令在调试模式下启动另一个 sshd:/usr/sbin/sshd -d -p 2222这将在端口 2222 上启动另一个 sshd,然后ssh -p 2222 user@sshserver在客户端运行。当您的客户端尝试进行身份验证时,观察 sshd 输出的内容。

权限问题不一定只是。 也可能是、或 的/home/$USER/.ssh问题。 如果其中任何一个是组可写的,则可能存在问题。//home/home/$USER

另一个常见问题是,你在 authorized_keys 文件中的密钥中间粘贴错误并插入换行符

答案3

serverA# ls -lah /root
serverA# ls -lah /root/.ssh
serverA# selinuxenabled 
serverA# echo $?

serverB# ls -lah /root
serverB# ls -lah /root/.ssh
serverB# senlinuxenabled
serverB# echo $?

如果这没有显示问题,请尝试以下步骤。ServerA 是客户端,serverB 是 ssh 服务器。

在 serverB 上,编辑 /etc/ssh/sshd_config。找到如下行:

日志级别信息

更改为:

日志级别详细

然后:

serverB# /etc/init.d/sshd restart

在服务器A上:

serverA# ssh -vvv root@serverb

您现在可以查看服务器 B 上的 /var/log/secure 文件以寻找线索。

最后提示,请查看:

http://www.ibm.com/developerworks/library/l-keyc/index.html

答案4

如果您启用了 SELinux,那么这是一个常见问题...

在 SSH 服务器上运行以下命令:

restorecon -R /home/$USER/.ssh

或者,对于 root:

restorecon -R /root/.ssh

'Nuff 说...

相关内容