脚本命令远程访问计算机,期望ssh脚本(在远程计算机上执行命令)

博主在尝试编写一个Expect脚本,该脚本通过SSH连接到远程服务器并执行命令。遇到的问题是脚本在执行时提示无法解析主机名,而直接运行生成的命令则可以成功。博客中提到了可能的解决方案,如使用'ssh-keygen'和'ssh-copy-id'来避免输入密码。尽管如此,脚本仍然存在错误,导致'spawn ssh'失败。博主分享了错误信息,并邀请读者共同探讨解决方案。
摘要由CSDN通过智能技术生成

我在写一个expect脚本,它使用ssh在远程服务器上执行命令。期望ssh脚本(在远程计算机上执行命令)

命令语法:ssh

代码:

set ip "hive28.cs.berkeley.edu"

set class [lindex $argv 0]

// set $user and $ip according to class

set cmd [lindex $argv 1]

spawn ssh "$user\@$ip '$cmd'"

expect "assword"

send "$password\r";

interact

不幸的是,我得到这个错误:

~/foo> ssh2 162 'pwd'

spawn ssh ***@hive28.cs.berkeley.edu 'pwd'

ssh: Could not resolve hostname hive28.cs.berkeley.edu 'pwd': Name or service not known

send: spawn id exp6 not open

while executing

"send "$password\r""

invoked from within <...>

但是,当我直接运行生成的命令,它的工作原理(忽略gdircolors警告):

~/foo> ssh ***@hive28.cs.berkeley.edu 'pwd'

***@hive28.cs.berkeley.edu's password:

/home/ff/cs162/adm/bashrc.d/70-gnu.sh: line 36: gdircolors: command not found

/home/cc/cs162/sp16/class/***

+0

如果您首先使用'ssh-keygen'和'ssh-copy-id',则根本不需要期望。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值