plink在执行批处理时将我置于交互式shell提示符中

时间:2014-03-05 16:34:07

标签: unix batch-file ssh plink

我正在尝试使用plink(Putty链接)使用批处理文件连接到测试服务器,以避免任何用户提示和执行shell脚本。但是在使用我不想要的用户名和密码登录后显示用户交互式提示是暂停的。

请提供有关为何发生这种情况的建议,或者我是否需要更改配置中的任何设置才能使其正常工作。

下面是相同的日志。我希望它在这个步骤之后执行一个shell脚本,之后它会被停止并且plink将我放入交互式shell中

D:\>plink -v -ssh xxx@xxx.xxx.xxx.xx.com –pw XXXXX
Looking up host "xxx@xxx.xxx.xxx.xx.com"
Connecting to xxx.xx.xxx.xx port 22
Server version: SSH-2.0-OpenSSH_5.1
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.63
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 1024 a5:c3:96:57:53:7c:72:06:8d:86:09:76:27:3e:18:8d
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "xxx".

Attempting keyboard-interactive authentication
Access granted
Opening session as main channel
Opened main channel
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command
Last login: Wed Mar  5 09:56:41 2014 from 10.34.39.22


←[?1034hxxxxavu2:←]2;xxx@xxxxavu2~ >

2 个答案:

答案 0 :(得分:0)

它为您提供了一个交互式shell,因为您实际上并没有在连接后给它执行命令。用引号括起你的命令,例如:

D:\>plink -v user@xxx.xxx.xxx.xxx -pw XXXXX "df -h"

答案 1 :(得分:0)

使用 SSH 时,在首次连接时,您需要验证服务主机密钥才能建立连接。

通过plink,命令行会产生一个提示,要求用户“接受服务主机密钥?(y/n)”。

第 1 步:修复“来自服务器的键盘交互式身份验证提示”

按照 URL 说明操作并取消选择腻子中的“尝试键盘交互式身份验证 (SSH-2)”。

https://support.linuxacademy.com/hc/en-us/articles/360027730172-How-Can-I-Copy-and-Paste-into-Putty-on-Windows

第 2 步:以下命令将使用 plink 为每个 Linux 服务器的第一个 SSH 连接修复“验证服务主机密钥”。

 echo yes| C:\PuTTY\plink.exe user-name@10.148.147.41 -pw *************** date 

第 3 步:现在您可以使用带有 -batch 选项的 plink 立即运行下一个脚本,例如“服务器正常运行时间检查”或“监控代理重启”(禁用所有交互式提示)

C:\PuTTY\plink.exe -batch user-name@10.148.147.41 -pw *************** -m C:\uptime_linux.sh 
C:\PuTTY\plink.exe -batch user-name@10.148.147.41 -pw *************** -m C:\monitoring-agent-check_linux.sh 

上述信息 100% 将帮助您使用 plink 实用程序自动执行 linux 任务。