我知道 ssh 是创建一个到机器的安全 shell 连接,然后我们调用它ssh username@ip_address
来登录该机器。
有没有一种方法,让我在通过 SSH 连接时不需要输入密码,或者比如说 SCP,或者在远程机器上使用 SSH 运行命令?
我知道有 ssh-keys,它允许特定用户无需输入密码即可登录。
有没有其他方法可以实现这一点,而且不需要密钥?比如对 ssh 配置进行一些更改?
答案1
基于密钥的身份验证是可行的方法。它不仅比密码身份验证配置起来更容易,而且更安全,并且易于集成到自动化脚本中。关于这个主题有大量的文献可供您参考:
https://hkn.eecs.berkeley.edu/~dhsu/ssh_public_key_howto.html
答案2
一种不太常见的方法是通过凯尔伯罗斯。如果您的所有机器都在同一个 Kerberos 域中,那么 SSH 可以通过以下方式获取您的身份验证信息全局搜索应用程序编程接口来自 kerberos 子系统。
但所需的设置相当复杂。这肯定不是您的选择,因为它比基于密钥的身份验证更简单。
在许多系统上,SSH 使用聚丙烯酰胺用于身份验证。因此,您可能还可以使用其他方法进行身份验证。也许是 RSA 令牌等等。
答案3
考虑使用“基于主机的身份验证”(.rhosts)
答案4
密码自动输入 ssh 密码。
Sshpass 是一个非交互式密码验证工具,它使用 SSH 所谓的“交互式键盘密码验证”。大多数用户应该改用 SSH 更安全的公钥验证。