快速业务通道

小女生的Linux技术~~~自动化管理 远程登录

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-16
a 和 id_rsa.pub 的时候输入了密码,需要进行以下两步操作: 启用 ssh-agent 认证代理 , 清单5. 终端操作记录 [root@redhat ~]# ssh-agent $SHELL (2) 使用 ssh-add, 装入私钥,并输入生成 rsa 和 id_rsa.pub 时输入的密码 清单6. 终端操作记录 [root@redhat ~]# ssh-add Enter passphrase for /root/.ssh/id_rsa: Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa) Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa) [root@redhat ~]# ssh 192.168.0.4 Last login: Sat May 16 11:37:39 2009 from redhat 把私钥保存在内存中,为认证提供服务,之后以 root 用户 ssh 登录时,就不用重复输入密码.其生命周期为 ssh-agent 启动的那个 shell,当用户退出该 shell 时,需要重新执行 ssh-agent 和 ssh-add. 只要密钥配置好,以后登录就是自动化了.因此本部分登录过程不需要用脚本来实现,实现了前期拷贝 SSH key 到远程服务器,并添加到相应的位置,并测试自动登录是否成功. 脚本实现配置自动化登录 本节的脚本实现基于 SSH key 交换的安全认证方式,并利用 Expect 来实现自动化登录.本节所实现的脚本可以运行在以下的实验环境中:用户使用的 SSH 客户端机器:操作系统均为 RHELS5.3, IP 地址为 192.168.0.3, Expect 版本为 version 5.43.0;远程的 SSHD 服务器:操作系统均为 RHELS5.3,IP 地址为 192.168.0.4,用户名 / 密码为 root/123456. Expect 脚本的内容如下: 清单7.基于 SSH key 交换的自动化登录脚本 #!/usr/bin/expect # 判断输入的参数是否为 3 个,如果不为 3 个,就打印错误信息,退出该程序. if { $argc != 3 } { puts stderr "Usage: test1 host-address username host-password\n" exit 1 } # 设置超时时间为 60 秒 set timeout 60 # 将命令行输入的第一个参数作为将要登录的 SSHD 服务器 set host [lindex $argv 0] # 第二个参数是用户名,赋值给 name, 之后用 $name 格式来使用 set name [lindex $argv 1] # 第三个参数是以 $name 登录 $host 的口令 set password [lindex $argv 2] ##set timeout 60 ##set password "cluster" ##set name “root” ##set host "192.168.0.4" #root 用户的 rsa key 放在 /root/.ssh 中,其他用户则放在 /home/$name/.ssh if { $name == "root"} { spawn scp /$name/.ssh/id_rsa.pub $name@$host:/tmp } else { spawn scp /home/$name/.ssh/id_rsa.pub $name@$host:/tmp } # 等待上个命令的响应 expect { "(yes/no)?" { send "yes\n" expect "assword:" send "$pasword\n" } "assword:" { send "$password\n" } } # 输入密码后,拷贝成功,出现 100% 字符串,作为预期响应 expect "100%" # 调用 ssh 以 $name 用户名登录到 $host 上 spawn ssh $host – l$name # 期待提示出入密码的响应 expect "assword:" # 接收密码 send "$password\n" expect ":~#" # 将刚刚拷贝的 rsa key 添加到用户的 home 目录下的 ./ssh/authorized_keys if { $name == "root"} { send "cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys\n" } else { send "cat /tmp/id_rsa.pub >> /home/$name/.ssh/authorized_keys\n" } expect ":~#" # 操作成功后,退回 SSH 客户端机器 send "exit\n" expect "#" # 下面将

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号