后来跳板机出现了问题,打算重装这台机器,重装前取消了其他机器里只允许跳板机ssh信任关系,并且恢复了密码登陆功能:
[root@bastion-IDC ssh]# vim /etc/ssh/sshd_config
PermitEmptyPasswords yes
[root@bastion-IDC ssh]# service sshd restart
修改后,当时在其他机器间是可以ssh相互登陆,当时没在意,以为一切ok了。
可是,到了第二天,再次ssh登陆时,尼玛,居然报错了~~
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
最后发现是selinux惹的祸!关闭它即可。
1)临时关闭selinux
[root@bastion-IDC ssh]# setenforce 0
[root@bastion-IDC ssh]# getenforce
Permissive
2)永久关闭
[root@bastion-IDC ssh]# vim /etc/sysconfig/selinux
SELINUX=disabled
[root@bastion-IDC ssh]# reboot #重启系统才能生效
说明:
1)ssh可同时支持publickey和password两种授权方式,publickey默认不开启,需要配置为yes。
如果客户端不存在.ssh/id_rsa,则使用password授权;存在则使用publickey授权;如果publickey授权失败,依然会继续使用password授权。
2)GSSAPI身份验证.
GSSAPIAuthentication 是否允许使用基于 GSSAPI 的用户认证.默认值为"no".仅用于SSH-2.
GSSAPICleanupCredentials 是否在用户退出登录后自动销毁用户凭证缓存。默认值是"yes".仅用于SSH-2.
需要特别注意的是:
GSSAPI是公共安全事务应用程序接口(GSS-API)
公共安全事务应用程序接口以一种统一的模式为使用者提供安全事务,由于它支持最基本的机制和技术,所以保证不同的应用环境下的可移植性.
该规范定义了GSS-API事务和基本元素,并独立于基本的机制和程序设计语言环境,并借助于其它相关的文档规范实现.
如果我们在服务端打开GSSAPIAuthentication配置项,如下: