我想编写一个批处理脚本,它将在远程服务器中运行cat infile | paste -sd ' \n'
192.168.1.1 hostname1 14423289909
192.168.1.2 hostname2 14423289910
192.168.1.3 hostname3 14423289911
命令,使用我的Windows中的Plink。
代码是:
scp
我期待的是远程机器的密码提示,我在批处理窗口中处理文件。当我运行上面的代码时,我的批处理窗口显示“权限被拒绝,请再试一次”三次和“丢失连接”消息。我还尝试使用plink.exe -ssh 10.168.5.15 -l username -pw passwd scp abc.txt xuser@10.168.10.108:/home
和scp
PasswordAuthentication=yes
,但没有用。
我确信Plink是互动的。
有什么建议吗?
答案 0 :(得分:0)
默认情况下,PLink在非交互式会话中运行命令(scp
)。出于安全原因,scp
甚至不会在非交互式会话中提示输入密码。
使用-t
开关强制进行交互式会话。
plink.exe -t -ssh 10.168.5.15 ...
引用PuTTY / Plink手册的3.8.3.12部分:
3.8.3.12
-t
和-T
:控制伪终端分配
-t
选项确保PuTTY尝试在服务器上分配伪终端,-T
阻止它分配一个伪终端。这些选项仅在您使用SSH时才有意义。这些选项等同于PuTTY配置框的SSH面板中的“不分配伪终端”复选框(请参阅section 4.24.1)。