我正在使用 SSH,并设置了无密码 SSH。在脚本中使用 SSH 可以正常工作,但如果用户指定的主机没有设置无密码 SSH,则脚本会提示输入密码并停止执行。
如何避免出现密码提示,并在主机没有设置无密码 SSH 时返回错误?
我正在使用 SSH,并设置了无密码 SSH。在脚本中使用 SSH 可以正常工作,但如果用户指定的主机没有设置无密码 SSH,则脚本会提示输入密码并停止执行。
如何避免出现密码提示,并在主机没有设置无密码 SSH 时返回错误?
ssh -o PasswordAuthentication=no user@hostname
请查看 ssh_config
的 man 手册以获取更多详细信息。
设置 PasswordAuthentication 对我无效,但这个可以:
ssh -o BatchMode=yes user@hostname
来自ssh_config(5)
BatchMode 如果设置为“yes”,则禁用密码/口令查询。此选项在脚本和其他批处理作业中很有用,因为没有用户提供密码。参数必须是“yes”或“no”。默认值为“no”。
为了保险起见,您还可以加入StrictHostKeyChecking,以便自动接受密钥并避免提示。
ssh -o StrictHostKeyChecking=no -o BatchMode=yes user@hostname