我正在使用ssh并为我的系统设置无密码ssh。在脚本中使用ssh工作正常,但如果用户指定的主机没有无密码的ssh设置,则脚本会提示输入密码并挂起。
如果没有为主机设置无密码ssh,我怎么能避免密码提示并返回错误?
答案 0 :(得分:25)
ssh -o PasswordAuthentication=no user@hostname
有关详细信息,请参阅ssh_config
的手册页。
答案 1 :(得分:1)
设置 PasswordAuthentication 对我不起作用,但这确实可行:
ssh -o BatchMode=yes user@hostname
来自ssh_config(5)
批处理模式:如果设置为“是”,则密码/密码查询将被禁用。此选项在脚本和其他批处理作业中非常有用,其中 没有用户可以提供密码。参数必须是 ''是还是不是''。默认值为“否”。
出于良好的考虑,您还可以放入 StrictHostKeyChecking ,这样它将自动接受密钥并避免出现提示。
ssh -o StrictHostKeyChecking=no -o BatchMode=yes user@hostname