SSH 免密码登陆

摘要:
4.执行脚本sudoyuminstallexpect.functionsettingSShNoLogin(){echo"settingsshnologin"pwd=""keyGen="ssh-keygen-trsa-f$HOME/.ssh/id_rsa"chmod="chmodg-w$HOME/.ssh/authorized_keys"machinedPwd="*****"echo"step1-˃settingprivatekey"$keyGenecho"step2-˃chmodforpublickey"if[!

1.在A机生成公钥和私钥

ssh-keygen -t rsa –P
一般采用的ssh的rsa密钥:
id_rsa     私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa

2.把A机下的/root/.ssh/id_rsa.pub 复制到B机的 /root/.ssh/authorized_keys文件里,先要在B机上创建好 /$HOME/.ssh 这个目录,用scp复制。

scp XXX@192.168.1.12:/$HOME/.ssh/id_rsa.pub  $HOME/.ssh/
cat id_rsa.pub  >>$HOME/.ssh/authorized_keys
chmod 600  $HOME/.ssh/authorized_keys

3.如果要互相免密码登陆,则需要在将B机的公钥拷贝到A机上。

4.执行脚本

sudo yum installexpect.
function settingSShNoLogin(){
   echo "setting ssh no login"
      pwd=""
      keyGen="ssh-keygen -t rsa -f $HOME/.ssh/id_rsa"
      chmod="chmod g-w  $HOME/.ssh/authorized_keys"
    machinedPwd="*****"
   echo "step 1->setting private key"
     $keyGen 
     echo "step 2->chmod for public key"
        if [ ! -f "$HOME/.ssh/authorized_keys" ];then
          cat > $HOME/.ssh/authorized_keys
       fi
         cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
         $chmod
    echo "step 3->merge authorized_keys file"
          OLD_IFS="$IFS"
            IFS=","
            nodeHosts=($NODE_HOSTS)
            IFS="$OLD_IFS"
           for  node in${nodeHosts[@]}
              do
          if [  "$node" != "$machine_name" ]; then
           expect -c "set timeout -1;
                spawn ssh-copy-id -i $HOME/.ssh/id_rsa.pub conversant@$node;
                expect {
                    *(yes/no)* {send --yes
;exp_continue;}
                    *assword:* {send --$machinedPwd
;exp_continue;}
                    eof        {exit 0;}
                }";
          fi
           done
}

免责声明:文章转载自《SSH 免密码登陆》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mybatis mapper判断if条件写法那些年踩过的WebAPI的坑(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ansible(一)

Ansible简介 Ansible:Ansible的核心程序Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载。Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来...

生产环境服务器安全策略与系统性能优化评估

生产环境服务器安全策略与系统性能优化评估 1. Linux的运维经验分享与故障排查思路 1.1 线上服务器安装基本策略和经验 精简安装策略: 仅安装需要的,按需安装,不用不装 开发包,基本网络包,基本应用包 1.1.1 CentOS-6.x 1.1.2 CentOS-7.x 盘系统-默认按照分区方式数据盘单独挂载 1.2 线上服务器网络设置经...

solaris 命令

一.chmod 命令 chmod用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。 1. 文字设定法 语法:chmod [who] [+ | - | =] [mode] 文件名 命令中各选项的含义为: 操作对象who可是下述字母中的任一个或者它们的...

SSH常见错误

错误一: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletCon...

xming + putty 搭建远程图形化ssh访问ubuntu 14.04

putty下载:   http://www.putty.org/   一般我们远程登录linux 服务器,都是使用非加密的 telnet 或者加密的 ssh。这些登录方式有一个特点:只能登录字符界面,不能运行那些带有GUI界面的程序。   有时候为了学习或者工作的需要,我们需要远程打开有图形化界面的 linux application, 今天就给大家介绍一...

Java—SSH(MVC)

Java—SSH(MVC) 1. 谈谈你mvc的理解 MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序 的输入、处理和输出分开。 MVC中的模型、视图、控制器它们分别担负着不同的任务。 视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何...