如何实现打开基于主机的认证,这样用户通过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。

注:只有在很安全的网络环境下才推荐使用基于主机的认证。