为什么这不起作用?我试图在bash脚本中自动执行此操作,但仍然提示我是... ....
echo "yes" | ssh -T git@github.com
The authenticity of host
'github.com (192.30.252.129)' can't be established. RSA key
fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are
you sure you want to continue connecting (yes/no)?
答案 0 :(得分:2)
@Barmar值得称赞关键指针:禁用选项StrictHostKeyChecking
以完全取消提示:
ssh -o StrictHostKeyChecking=no -T git@github.com
但请注意:
~/.ssh/known_hosts
因此,如果可行,更好的选择是将所有潜在目标主机的指纹保存到前面~/.ssh/known_hosts
或/etc/ssh/ssh_known_hosts
,正如@chepner在评论中建议的那样。
但请注意,如果远程主机[的硬盘驱动器]被替换(例如,在硬件故障后)而未传输其旧的自身身份指纹文件,则会再次出现身份验证警告提示由于生成了新的指纹 - 除非新的指纹在事先访问机器时再次保存。
正如@Ian Roberts所指出的那样,通过stdin管道响应的原因无效,可能是ssh
直接从终端读取响应。
正如@konsolebox指出的那样,如果您确实需要自动与ssh
进行互动,expect
(请参阅man expect
)是适合此工作的工具,但由于此通常涉及自动输入密码,它带有安全警告。