我有一个 Shell bash 文件,我以 sudo 身份运行,它包含一个用于向批量客户端发送 ssh 命令的文件,但它每次都要求输入密码,而我不知道基于什么密钥的 ssh 密码对于所有主机名都是相同的。我也不想安装任何outhr软件。
客户端是 debian ,主机是 ubuntu 14.04
答案1
基于主机的身份验证无需提示密码和安装用户的公钥
仅执行步骤 1 并替换.shosts
为在 Kerberos 环境中安全 .rhosts
使用。rsh
1 添加客户端的主机名和想要访问服务器的用户的用户名。
server$ echo '<client's hostname> <user name>' >> ~/.shosts
2 将客户端的公共主机密钥附加到服务器的known_hosts。
client$ cat /etc/ssh/ssh_host_rsa_key.pub | ssh user@server 'cat >> ~/.ssh/known_hosts'
3 告诉服务器不要通过反向查找客户端的 IP 来查找客户端的主机名。
server# echo 'HostbasedUsesNameFromPacketOnly yes' >> /etc/ssh/sshd_config
。
4 要求服务器不要忽略.shosts 文件。
server# echo 'IgnoreRhosts no' >> /etc/ssh/sshd_config
server# service sshd reload