unix命令在通过SSH完成身份验证之前执行
我尝试使用putty.exe通过java代码和windows打开Unix会话,如下所示:unix命令在通过SSH完成身份验证之前执行,unix,batch-file,ssh,Unix,Batch File,Ssh,我尝试使用putty.exe通过java代码和windows打开Unix会话,如下所示: Runtime.getRuntime().exec("cmd /c start /B C:/scripts/Session.bat "); “Session.bat”文件内容为: putty.exe -t -ssh root@aaa -pw abcd -P 22 aaa是服务器名称。 root是用户名。 abcd是密码 现在,会话很好地打开了,但是我想从上面的命令(ll-s、pwd等)运行几个简单的命令
Runtime.getRuntime().exec("cmd /c start /B C:/scripts/Session.bat ");
“Session.bat”文件内容为:
putty.exe -t -ssh root@aaa -pw abcd -P 22
aaa是服务器名称。
root是用户名。
abcd是密码
现在,会话很好地打开了,但是我想从上面的命令(ll-s、pwd等)运行几个简单的命令。
但是,当我尝试将包含这些命令的txt文件添加到上述命令时,我看到这些命令是在输入用户名之后和密码之前执行的。
完整的命令是:
putty.exe -t -ssh root@aaa -pw abcd -P 22 -m C:\scripts\commands.txt
这就是为什么我会出现错误(如下),因为命令“ll”出现在密码之前:
Using username "root".
bash: ll:: command not found
请帮帮我。。。
谢谢在处理密码之前,无法在远程计算机上执行该命令。当然,root的bash启动文件中缺少别名
尝试将
别名ll='ls-l'
添加到/root/.bash\u profile?我想这只是因为ll
是root
没有的别名。如果你有ls
呢?我想应该是ls-l
(长列表)。更正。Thx@user1630359运行您想要运行的实际命令;不要依赖别名。