免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 12914 | 回复: 32
打印 上一主题 下一主题

[文本处理] 看看 expect 执行,结果不能自动登录,提示invalid command name "~" [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-18 12:09 |只看该作者 |倒序浏览
[abel@l-rtools1.ops.cn1 ~]$ cat ssh-hs01.sh
#!/usr/bin/expect -f  
set ip wap.cn1
set pw v^@*8#3k8^z-@;~
spawn ssh  abel@$ip
        expect {
                "want"        {send -- "yes\r"; exp_continue}
                "password:"   {send -- "$pw\r"}
                "No route"    { exit }
                }
      
        set timeout 5
        expect  "*#"
        send "exit\r"

[abel@l-rtools1.ops.cn1 ~]$ ./ssh-hs01.sh
invalid command name "~"
    while executing
"~"
    (file "./ssh-hs01.sh" line 3)
这个符号该如何处理?

论坛徽章:
0
2 [报告]
发表于 2014-06-18 12:45 |只看该作者
@whatislinux

不了解expect详细使用,加个单引或是双引试试了,实在不行,就别用这个符号了。

论坛徽章:
0
3 [报告]
发表于 2014-06-18 13:09 |只看该作者
回复 2# todayhero


    感谢你的回复。加上单引号也不可行,加上双引号后,停留在下一步
[abel@l-rtools1.ops.cn1 ~]$ ./ssh-hs01.sh
spawn ssh abel.li@l-hs01.wap.cn1
Enter passphrase for key '/home/q/home/abel.li/.ssh/id_rsa':

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2014-06-18 13:11 |只看该作者
回复 3# whatislinux


    重新生成一个不需要密码的id_rsa

论坛徽章:
0
5 [报告]
发表于 2014-06-18 13:16 |只看该作者
回复 4# Shell_HAT


    不知道如何操作,能简单介绍下吗?感谢

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2014-06-18 13:18 |只看该作者
回复 5# whatislinux


1) 在本地主机生成密钥对
mkdir -m 700 .ssh
cd .ssh
ssh-keygen -t rsa
输入密钥名称id_rsa
输入你对密钥访问的密码,如果需要免密码登录,密钥访问密码请留空
这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。

2) 将公钥添加到远程主机的 authorized_keys 文件中
将文件上传到远程主机中
scp ~/.ssh/id_rsa.pub ldap@192.168.175.5:/home/ldap/

SSH到登陆到远程主机,将公钥追加到 authorized_keys 文件中
mv /home/ldap/id_rsa.pub /home/ldap/.ssh/
cd /home/ldap/.ssh/
cat id_rsa.pub >> authorized_keys

或直接运行命令:
cat ~/.ssh/id_dsa.pub|ssh root@192.168.1.23 `cat - >> ~/.ssh/authorized_keys`

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
7 [报告]
发表于 2014-06-18 13:21 |只看该作者

论坛徽章:
0
8 [报告]
发表于 2014-06-18 13:22 |只看该作者
回复 6# Shell_HAT


非常感谢你的回复,    如果还是使用expect自动登录,可以实现吗?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
9 [报告]
发表于 2014-06-18 13:39 |只看该作者
回复 8# whatislinux


    你知道当时生成密钥的时候输入的密码是什么不?

论坛徽章:
0
10 [报告]
发表于 2014-06-18 13:39 |只看该作者
@whatislinux
这可以实现自动登录,
  1. #!/usr/bin/expect
  2. set timeout 3600
  3. spawn ssh root@23.12.25.1
  4. expect "password:"
  5. send "bj_ixda_23cc\r"
  6. expect "]#"
  7. send "sh /data/tool/sync/web.sh\r"
  8. expect "]#"
  9. send "exit\r"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP