如何从脚本“您确定要继续连接(是/否)吗?”接受“是”

如何从脚本“您确定要继续连接(是/否)吗?”接受“是”

我努力了

echo yes | ssh [email protected]
yes | ssh [email protected]
ssh -y [email protected]

这些似乎都不起作用?

编辑#1

我的问题的一部分是我认为该ssh命令之后的每个命令都是远程命令,而这些命令实际上是本地的。我想远程命令必须在字符串中声明,该字符串作为参数传递给 ssh 命令,例如

$ ssh [email protected] 'remote command'

答案1

这是设计使然。 ssh的主机验证和身份验证交互故意地不接受来自管道的输入。但是,如果您对主机密钥有信心,则可以执行以下操作:

ssh-keyscan host.example.com >> $HOME/.ssh/known_hosts
ssh host.example.com

答案2

如果您不介意通过 SSH 对主机进行身份验证,并且盲目接受来自服务器的密钥或忽略它们,最好忽略它们。

$ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no <user>@<host>

请记住,您正在限制 SSH 的能力来保护您,但与通过外部手段强制使用这些工具相比,这是按预期使用这些工具的更合适的方式。

相关内容