如何实现打开基于主机的认证,这样用户通过SSH登录无须密码?
解决方法:
下面是设置SSH的基于主机的认证方法:
1. 在用户主目录下创建一个文件,名字为.shosts,内容至少包括以下内容:
clienthostname.clientdomain.com username
该文件必须只有该用户可以读写:
# chown username:username ~username/.shosts
# chmod 600 ~username/.shosts
2. 编辑/etc/ssh/sshd_config,添加以下选项:
HostbasedAuthentication yes
IgnoreRhosts no
3. 执行以下命令:
# ssh-keyscan -t dsa clienthostname >> /etc/ssh/ssh_known_hosts
(for dsa encryption)
或者
# ssh-keyscan -t rsa clienthostname >> /etc/ssh/ssh_known_hosts
(for rsa encryption)
4. 重新执行SSH服务:
# service sshd restart
在客户端:
1. 编辑/etc/ssh/ssh_config,在Host *下添加:
HostbasedAuthentication yes
EnableSSHKeysign yes
2. 这会实现用户无须提示密码登录,而且可以使用ssh-keyscan命令来添加更多系统到/etc/ssh/ssh_known_hosts。
注:只有在很安全的网络环境下才推荐使用基于主机的认证。