如何使用“/etc/ssh/ssh_known_hosts”和“~/.ssh/known_hosts”进行客户端身份验证?

如何使用“/etc/ssh/ssh_known_hosts”和“~/.ssh/known_hosts”进行客户端身份验证?

SSH 权威指南说

OpenSSH 维护一个服务于服务器身份验证和客户端身份验证的单一数据库。它是系统的known_hosts 文件 ( ) 与源计算机(用于服务器身份验证)或目标计算机(用于身份验证)上的/etc/ssh/ssh_known_hosts用户文件的并集。~/.ssh/known_hosts客户端认证)。

如何/etc/ssh/ssh_known_hosts以及 如何~/.ssh/known_hosts用于客户端身份验证?

根据https://security.stackexchange.com/a/20710/,我认为/etc/ssh/ssh_known_hosts~/.ssh/known_hosts仅用于服务器身份验证,并且~/.ssh/authorized_keys仅用于用户身份验证。

“客户端身份验证”与“用户身份验证”含义相同吗?

谢谢。

答案1

在 ~/.ssh 中,您有几个文件(known_hosts、authorized_keys、id_rsa 和 id_rsa.pub)。

如果在机器 A 上您想以同一用户身份登录机器 B 而无需密码,您可以(即使不推荐)将机器 A id_rsa.pub 的内容复制到机器 B ~/.ssh/authorized_keys 中。这就是用户身份验证。

第一次登录机器 B 时,机器 A 会请求您信任它,然后它将机器 B 的公钥放在 ~/.ssh/known_hosts 中。即客户端身份验证,机器 A ssh 进程是机器 B sshd 服务的客户端。

相关内容