将SSH与xagrs一起使用.不会分配伪终端,因为stdin不是终端



一直在尝试执行类似cat file | awk '{print $2}' | xargs ssh的操作,并且可以登录(提示输入密码但显示伪终端将不会分配,因为stdin不是终端。(。如果我将-tt参数传递给ssh,它将给我一个shell,但它只是被冻结了(无法向shell写入任何内容(。我的问题是,是否可以使用xargs或pipe将参数传递给ssh?(这样ssh的stdin或参数是另一个命令的stdout,而不是shell(?

我知道可以做类似ssh `cat somefile`的事情,假设somefile包含如下内容username@server,在第一行。

我建议您不要使用密码身份验证,但SSH提供的其他身份验证形式之一是:

  • 基于主机的身份验证,或者更可取
  • 公钥身份验证

如果两者都不适用,可以选择ssh-askpass或设置环境变量SSH_ASKPASS的替代方案。尽管如此,我还是不建议你这样做,因为你现在似乎正在从明文文件中读取密码,并且可能会保留它。

最新更新