如何使用ssh自动登录到主机,运行主机上的脚本(不使用expect)

lovetjl
如何使用ssh自动登录到主机,运行主机上的脚本(不使用expect)

如何使用ssh自动登录到主机,运行主机上的脚本,无expect的交互环境

寂寞烈火
[url]http://bbs.chinaunix.net/viewthread.php?tid=343905&extra=page%3D2%26filter%3Ddigest[/url]

lovetjl
谢谢!寂寞烈火。

可能是我没有说清楚,网上的方法基本都是生成密匙。可我现在就算生成密匙了,也无法放到其他机器上。所以这招不灵。看看大家还有什么办法??

walkerxk
你懂SSH的协议么?如果知道的话可以用telnet,不过应该很麻烦,其他方法好像是没有了。

walkerxk
算了,telnet也要expect的。

liaosnet
[quote]原帖由 [i]walkerxk[/i] 于 2008-6-29 20:53 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8698310&ptid=1183130][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
你懂SSH的协议么?如果知道的话可以用telnet,不过应该很麻烦,其他方法好像是没有了。 [/quote]

可以的~~只是似乎要根据环境做~~
(
  echo $username
  sleep 2
  echo $passwd
  sleep 2
  echo vt100
  sleep 2
  echo "cd $path"
  sleep 2
  echo "nohup sh.sh &"
  sleep 2
  echo "exit"
) | telnet $ipaddr

sway2004009
[quote]原帖由 [i]lovetjl[/i] 于 2008-6-29 20:43 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8698248&ptid=1183130][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
可能是我没有说清楚,网上的方法基本都是生成密匙。可我现在就算生成密匙了,也无法放到其他机器上。所以这招不灵。看看大家还有什么办法?? [/quote]

能把情况说具体点吗?

walkerxk
[quote]原帖由 [i]liaosnet[/i] 于 2008-6-29 22:09 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8698752&ptid=1183130][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]


可以的~~只是似乎要根据环境做~~
(
  echo $username
  sleep 2
  echo $passwd
  sleep 2
  echo vt100
  sleep 2
  echo "cd $path"
  sleep 2
  echo "nohup sh.sh &"
  sleep 2
  echo "ex ... [/quote]
ssh的密码能用echo?而且还要sleep控制,否则容易没有相应,而且执行也不一定完整,我上次用echo+telnet收邮件,结果邮件都是不完整的,直接telnet手动收是完整的。

liaosnet
回复 #8 walkerxk 的帖子

偶回答的时telnet的,ssh没试过~~:mrgreen: :mrgreen:
telnet要放后台做,,否则你就要多sleep会~:mrgreen:

walkerxk
[quote]原帖由 [i]liaosnet[/i] 于 2008-6-29 23:24 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8699163&ptid=1183130][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
偶回答的时telnet的,ssh没试过~~:mrgreen: :mrgreen:
telnet要放后台做,,否则你就要多sleep会~:mrgreen: [/quote]
我说的是用telnet连ssh,LZ主要是要连ssh,总不能再开一个telnet服务吧,而且那样不安全。

liaosnet
[quote]原帖由 [i]walkerxk[/i] 于 2008-6-29 23:55 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8699294&ptid=1183130][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]

我说的是用telnet连ssh,LZ主要是要连ssh,总不能再开一个telnet服务吧,而且那样不安全。 [/quote]
呵~~这个得试试才知道~~因为我还用尝试过用ssh做连接的.呵
一般都用remsh/rlogin来做的,呵~~

lovetjl
具体的情况。

A 主机 只能够通过一般用户(无root权限)和 ssh协议访问 B主机,无expect软件。想通过ssh 自动从 A 主机登录到B 主机,执行 B主机的程序。

sway2004009
[quote]原帖由 [i]lovetjl[/i] 于 2008-6-30 20:14 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8705543&ptid=1183130][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
A 主机 只能够通过一般用户(无root权限)和 ssh协议访问 B主机,无expect软件。想通过ssh 自动从 A 主机登录到B 主机,执行 B主机的程序。 [/quote]

那为什么不能用publickey authentication 呢?

liaosnet
[quote]原帖由 [i]liaosnet[/i] 于 2008-6-30 00:01 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8699317&ptid=1183130][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]

呵~~这个得试试才知道~~因为我还用尝试过用ssh做连接的.呵
一般都用remsh/rlogin来做的,呵~~ [/quote]

做了实验~~ssh的确不行~:em03: :em03:

sway2004009
回复 #13 sway2004009 的帖子

除非你的B机器上的sshd不支持publickey 的认证方式。

不行的话,如果支持Hostbased的方式的话也可以。

如果只能用password 和keyboard interactive的话, 那我就不知道了。
因为ssh的password 是不能通过echo 来提供的。

lovetjl
只能够安装expect软件了!

只能够安装expect软件了!

shijiang1130
回复 #1 lovetjl 的帖子

可以用perl结合plink.exe遍译exe