设想:源主机(Solaris 5.10,KSH),我尝试运行以下名为的脚本样本.ksh来源
#!/bin/ksh
set -x
Rediscover ()
{
ssh user@hostB ./scripts/test.ksh
}
Rediscover
exit 0
远程主机:Linux(bash shell),我有以下脚本测试.ksh
#!/bin/bash -x
resize
stty -a
exit
问题:我可以直接在 Linux 主机上运行 test.ksh,没有任何问题,但是当我尝试从 Solaris 远程运行它时,出现以下错误。
root@hostA# ./sample.ksh
+ Rediscover
+ resize
resize: can't open terminal /dev/tty
+ stty -a
stty: standard input: Invalid argument
+ exit
+ exit 0
为什么我无法远程看到 resize 和 stty -a 的输出?
SSH 密钥从 A 到 B 设置
答案1
您可以-tt
在脚本中使用 switch 强制交互式会话:
ssh -tt user@hostB ./scripts/test.ksh
hostB
否则,将不会分配TTY ,并且您将收到此类错误。