设为首页 加入收藏

TOP

Linux shell脚本实现SSH免密码登陆
2015-02-02 14:28:00 来源: 作者: 【 】 浏览:5
Tags:Linux shell 脚本 实现 SSH 密码 登陆

最近工作是主要在写shell脚本,这中间有个功能就是要实现机器之间的SSH免密码登陆,在此我把我成功执行的步骤记下来。


1、首先生成本地的 authorized_keys(我这个是root用户)


ssh-keygen -q -t rsa -N "" -f /root/.ssh/id_rsa


cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys


chmod go-rwx /root/.ssh/authorized_keys


2、需要安装expect,安装expect的时候,如果你的linux可以联网,那直接yum就搞定了。


如果你的机房像我一样,没有外网,并且你找那些安装包,和依赖包又不会,或者不方便的情况下,可以按照下面我的经验做。


(1)用你自己的机器,前提你自己的机器可以联网。下载一个yum插件:yum-downloadonly :yum -y install yum-downloadonly


(2)然后 yum -y install --downloadonly --downloaddir=/root/ expect? (--downloadonly 就是只下载不安装,--downloaddir就是下载到哪里,自行修改),然后在/root/ 下可以看到你下好的expect包和依赖包。


(3)你把下载好的文件,拷贝到服务器上就可以安装了。


3、脚本


#!/bin/sh


#pqj,2014-11-12,SSH免密码登录


#$1:远程机器密码


#$2:远程机器IP


auto_ssh_copy_id () {


? ? expect -c "set timeout -1;
? ? ? ? ? ? ? ? spawn ssh-copy-id $2;
? ? ? ? ? ? ? ? expect {
? ? ? ? ? ? ? ? ? ? *(yes/no)* {send -- yes\r;exp_continue;}
? ? ? ? ? ? ? ? ? ? *assword:* {send -- $1\r;exp_continue;}
? ? ? ? ? ? ? ? ? ? eof? ? ? ? {exit 0;}
? ? ? ? ? ? ? ? }";
}?
auto_ssh_copy_id? yourpassword yourIP


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言之霍夫曼编码学习 下一篇C++多态实现的机制

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: