我努力了
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 的能力来保护您,但与通过外部手段强制使用这些工具相比,这是按预期使用这些工具的更合适的方式。