【发布时间】:2015-06-06 07:36:59
【问题描述】:
我使用 expect 将我的密钥复制到远程 linux 盒子。
copy_key
#!/usr/bin/expect
stty echo
set REMOTEhost [lindex $argv 0]
set REMOTEpass [lindex $argv 1]
spawn ssh-copy-id -i /home/myuser/mykey.pub root@$REMOTEhost
expect "password: "
send "$REMOTEpass\n"
sleep 2
这是通过./copy_key 1.1.1.1 GENERATED_PASSWORD调用的
我想将所有这些迁移到 bash 脚本中。
类似下面的东西,当然是不同的,但只是为了帮助一个想法:
#!/bin/bash
/usr/bin/expect -c 'expect "\n" { eval spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com; interact }'
这不起作用
#!/bin/bash
ssh-copy-id -i /home/myuser/mykey.pub root@$REMOTEhost
我该怎么做?
【问题讨论】:
-
您想要摆脱期望,或者出于某种原因想要将其包装在 shell 脚本中?为什么?
-
我尝试摆脱它,但它不起作用。它需要适应。这是一项要求,因此所有内容都必须在同一个 bash 脚本上。
-
目前您只有一个期望脚本。您想用 没有 的 bash 脚本替换它吗?还是使用期望的 bash 脚本?具体要求是什么?