精华内容
下载资源
问答
  • 三、在上面脚本文件的同目录下新建名为host的文件,将要建立ssh互信的机器名或ip地址添加到该文件中,每个机器名或ip占一行,如: [root@localhost mysh]# vim host 192.168.xxx.xxx 192.168.xxx.xxx 192.168.xxx....

    一、安装expect

    [root@localhost ~]# yum -y install expect
    

    安装完成后进行测

    [root@localhost ~]# expect
    expect1.1> exit
    [root@localhost ~]# which expect
    /usr/bin/expect
    

    二.编写批量互信脚本

    [root@localhost mysh]# vim auth_ssh.sh
    #!/bin/sh
    ####################################
    # DEST_USER :系统用户              #
    # PASSWORD : 系统密码               # 
    # HOSTS_FILE : 服务器名称的配置文件  #
    ####################################
    
    DEST_USER=$1
    PASSWORD=$2
    HOSTS_FILE=$3
    
    #判断输入参数是否满足
    
    if [ $# -ne 3 ]; then
        echo "Usage:"
        echo "$0 remoteUser remotePassword hostsFile"
        exit 1
    fi
        
    SSH_DIR=~/.ssh
    SCRIPT_PREFIX=./tmp
     
    #先删除.ssh目录下的所有文件
    rm -rf $SSH_DIR
    mkdir $SSH_DIR
    chmod 700 $SSH_DIR
        
    #生成ssh key
    TMP_SCRIPT=$SCRIPT_PREFIX.sh
    echo  "#!/usr/bin/expect">$TMP_SCRIPT
    echo  "spawn ssh-keygen -b 1024 -t rsa">>$TMP_SCRIPT
    echo  "expect *key*">>$TMP_SCRIPT
    echo  "send \r">>$TMP_SCRIPT
    if [ -f $SSH_DIR/id_rsa ]; then
        echo  "expect *verwrite*">>$TMP_SCRIPT
        echo  "send y\r">>$TMP_SCRIPT
    fi
    echo  "expect *passphrase*">>$TMP_SCRIPT
    echo  "send \r">>$TMP_SCRIPT
    echo  "expect *again:">>$TMP_SCRIPT
    echo  "send \r">>$TMP_SCRIPT
    echo  "interact">>$TMP_SCRIPT
        
    chmod +x $TMP_SCRIPT
        
    /usr/bin/expect $TMP_SCRIPT
    rm $TMP_SCRIPT
        
    #生成authorized_keys
    cat $SSH_DIR/id_rsa.pub>>$SSH_DIR/authorized_keys
        
    #赋权authorized_keys
    chmod 600 $SSH_DIR/authorized_keys
    
    #拷贝到其他服务器
    for ip in $(cat $HOSTS_FILE)  
    do
        if [ "x$ip" != "x" ]; then
            echo -------------------------
            TMP_SCRIPT=${SCRIPT_PREFIX}.$ip.sh
            # check known_hosts
            val=`ssh-keygen -F $ip`
            if [ "x$val" == "x" ]; then
                echo "$ip not in $SSH_DIR/known_hosts, need to add"
                val=`ssh-keyscan $ip 2>/dev/null`
                if [ "x$val" == "x" ]; then
                    echo "ssh-keyscan $ip failed!"
                else
                    echo $val>>$SSH_DIR/known_hosts
                fi
            fi
            echo "copy $SSH_DIR to $ip"
                        
            echo  "#!/usr/bin/expect">$TMP_SCRIPT
            echo  "spawn scp -r  $SSH_DIR $DEST_USER@$ip:~/">>$TMP_SCRIPT
            echo  "expect *assword*">>$TMP_SCRIPT
            echo  "send $PASSWORD\r">>$TMP_SCRIPT
            echo  "interact">>$TMP_SCRIPT
                
            chmod +x $TMP_SCRIPT
            #echo "/usr/bin/expect $TMP_SCRIPT" >$TMP_SCRIPT.do
            #sh $TMP_SCRIPT.do&
            
            /usr/bin/expect $TMP_SCRIPT
            rm $TMP_SCRIPT
            echo "copy done."                
        fi
    done
        
    echo done.
    

    三、在上面脚本文件的同目录下新建名为host的文件,将要建立ssh互信的机器名或ip地址添加到该文件中,每个机器名或ip占一行,如:

    [root@localhost mysh]# vim host
    192.168.xxx.xxx
    192.168.xxx.xxx
    192.168.xxx.xxx
    192.168.xxx.xxx
    ......n个......
    ...............
    

    四、最后就可以运行这个脚本ssh_auth.sh文件,ssh_auth.sh接受三个参数,远程机器用户名、密码和host文件名(相对路径或绝对路径均可)。

    注意:这里我用的cobbler安装的系统,把所有的服务器用户名、密码都设置为了root root

    [root@localhost mysh]# ./auth_ssh.sh root root /mysh/host
    

    然后查看下其他服务器,发现.ssh目录下的文件和192.168.10.202机器的.ssh目录下的文件一致。

    [root@localhost ~]# ls ~/.ssh
    authorized_keys  id_rsa  id_rsa.pub  known_hosts
    

    互信成功!

    五、注意:

    上面脚本针对的是服务器ssh端口是22的情况,如果ssh是非22端口,比如是22222端口。
    则只需要在ssh_auth.sh脚本中修改下面两行内容:

    [root@localhost mysh]# cp ssh_auth.sh ssh_auth.sh.bak
    [root@localhost mysh]# vim ssh_auth.sh              #注意下面一个小写p,一个大写P
    ..............................................
    val=`ssh-keyscan $ip 2>/dev/null`
    修改为
    val=`ssh-keyscan -p 22222 $ip 2>/dev/null`
    ...............................................
    echo  "spawn scp -r  $SSH_DIR $DEST_USER@$ip:~/">>$TMP_SCRIPT
    修改为
    echo  "spawn scp -P 22222 -r  $SSH_DIR $DEST_USER@$ip:~/">>$TMP_SCRIPT
    
    [root@localhost mysh]# diff ssh_auth.sh ssh_auth.sh.bak
    57c57
    <             val=`ssh-keyscan -p 22222 $ip 2>/dev/null`
    >             val=`ssh-keyscan $ip 2>/dev/null`
    67c67
    <         echo  "spawn scp -P 22222 -r  $SSH_DIR $DEST_USER@$ip:~/">>$TMP_SCRIPT
    >         echo  "spawn scp -r  $SSH_DIR $DEST_USER@$ip:~/">>$TMP_SCRIPT
    

    最后执行脚本,进行相互信任关系批量部署即可

    [root@localhost mysh]# ./ssh_auth.sh root root /mysh/host
    
    展开全文
  •  是两台机器(web-1和web-2)经过预先设置好经过认证的key文件,双方互相访问时,进行自动认证,从而实现互信。  互信的原理了解了,我们可以把配置ssh互信的步骤进行有效的分割。  1.在要配置互信的机器(web-1...
  • 1、创建服务器B到服务器A的互信 (1)服务器B上执行 ssh-keygen -t rsa 一路回车 (2)服务器B上执行 ssh-copy-id -i 172.17.166.10 回车输入服务器A的密码 (3)在服务器B上 执行 ssh 172.17.166.10 验证是否可以...
  • 两台服务器互信机制

    千次阅读 2017-03-28 14:09:11
    一台linux服务往另外一台服务器scp文件时经常要提示输入密码,这样感觉很繁琐,于是添加互信机制 把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys文件中,假设本地主机linux(10.1....

    一台linux服务往另外一台服务器scp文件时经常要提示输入密码,这样感觉很繁琐,于是添加互信机制

    把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys文件中,假设本地主机linux(10.1.1.1),远程主机linux(10.1.1.2)

    一,在linux100主机里的用户

    运行

    #ssh-keygen -t rsa

    结果如下

    Generating public/private rsa key pair.

    Enter file in which to save the key(/home/.username/ssh/id_rsa):#回车

    Enter passphrase (empty for no passphrase):#回车

    Enter same passphrase again:#回车

    Your identification has been saved in /home/.username/.ssh/id_rsa.

    Your public key has been saved in /home/.username/.ssh/id_rsa.pub.

    The key fingerprint is:

    38:25:c1:4d:5d:d3:89:bb:46:67:bf:52:af:c3:17:0c username@localhost

    Generating RSA keys:

    Key generation complete.

    会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub

    二,把linux(10.1.1.1)主机上的id_rsa.pub文件拷贝到linux(10.1.1.2)主机的root用户主目录下的.ssh目录下,并且改名为authorized_keys

    即:

    /root/.ssh/authorized_keys

    这样在linux100主机上使用scp命令复制文件到linux(10.1.1.2)上将不提示输入密码了,直接复制了。反之亦然!


    转自:

    <http://blog.163.com/ji_1006/blog/static/106123412015321102632355/

    另外,可以使用cat id_rsa.pub>>authorized_keys把另一台机器的公钥添加到authorized_keys文件里。

    例如多台服务器对某一台实现互信, 65、66、67 -> 24

    转自:

    <http://www.dataguru.cn/thread-95673-1-1.html



    展开全文
  • 有时候搭建集群机器是,需要在多台机器中间相互拷贝文件,一种方式是同事sftp拷贝到本机,再分别拷贝到其他服务器上。这里介绍一种直接在两台服务器之间拷贝文件且去掉繁琐的登陆操作的方法
  • 最近配了个备份,备份在服务器A上,需要将备份的数据通过scp传输到服务器B上进行保留,所以涉及到配置A到B的信任关系。 1. 在A服务器上 [oracle@A yebiao]$ ssh-keygen -t rsa Gene...
    最近配了个备份,备份在服务器A上,需要将备份的数据通过scp传输到服务器B上进行保留,所以涉及到配置A到B的信任关系。
    1. 在A服务器上
    [oracle@A yebiao]$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/oracle/.ssh/id_rsa.
    Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
    The key fingerprint is:
    f2:0f:64:1c:0d:20:db:9b:9d:45:0a:23:b9:97:f3:83 oracle@A 服务器
    The key's randomart image is:
    +--[ RSA 2048]----+
    |    o.+.. .      |
    |    .= o =       |
    |    ....o o      |
    |    . += +       |
    |     .++S        |
    |      E=o        |
    |        o.       |
    |         o       |
    |          .      |
    +-----------------+

    2. 将生成的id_rsa.pub文件拷贝到B服务器的.ssh目录下。
    scp /home/oracle/.ssh/id_rsa.pub 10.18.1.119:/home/backup/.ssh/a.pub

    3. 将a.pub的内容加入到authorized_keys文件里。
    cat a.pub >> authorized_keys

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21374452/viewspace-2130760/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/21374452/viewspace-2130760/

    展开全文
  • Linux 服务器之间互信

    2020-01-10 15:49:12
    Linux 服务器之间互信 修改hosts文件 执行vi /etc/hosts命令打开主机表文件,会看到类似如下的信息。 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost....

    Linux 服务器之间互信

    修改hosts文件

    执行vi /etc/hosts命令打开主机表文件,会看到类似如下的信息。

    127.0.0.1   localhost  localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost  localhost.localdomain localhost6 localhost6.localdomain6 
    

    分别修改两台服务器的hosts主机表,在其末尾增加两行配置,配置如下。

    192.168.10.10  server1.cluster.com
    192.168.10.11  server2.cluster.com
    

    增加之配置之后,输入:q保存。
    完成配置之后,可以通过hostname –f命令查看服务器当前的FQDN,如果是主机表中所配置的就代表修改成功了。

    服务器互信
    步骤1 【生成秘钥】

    服务器节点上生成公钥和私钥,可以通过执行如下命令实现。

    [root@localhost ~]# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    28:05:b8:eb:b5:7a:96:c1:d4:f5:03:5f:a2:d6:d0:d4 root@redhatclient
    The key's randomart image is:
    +--[ RSA 2048]----+
    |   ..    o..     |
    |  .  .  + o E    |
    |   . ... B o     |
    |  . ....o =      |
    |   +. ..S  .     |
    |  . +.           |
    | . . +           |
    |  . =            |
    |  .+             |
    +-----------------+
    [root@localhost ~]# 
    

    执行成功之后会在 /root/.ssh 目录下生成私钥和公钥文件

    步骤2 【集群互信】

    将生成的公钥添加到集群中所有目标服务器节点的 authorized_keys 文件中去。

    首先,进入到 server1.cluster.com 服务器的 /root/.ssh 目录。
    然后,执行如下命令进行拷贝。
    注意:需要将公钥发送到集群中的所有主机

    1. 添加server1.cluster.com服务器

      ssh-copy-id -i ./id_rsa.pub root@server1.cluster.com
      root@server1.cluster.com's password: 
      Now try logging into the machine, with "ssh 'root@server1.cluster.com'", and check in:
        .ssh/authorized_keys
      
    2. 添加server2.cluster.com服务器

      ssh-copy-id -i ./id_rsa.pub root@server2.cluster.com
      The authenticity of host 'server2.cluster.com (10.0.1.62)' can't be established.
      RSA key fingerprint is 6b:97:71:34:6b:97:90:46:58:8f:e5:7a:8f:d0:d1:65.
      Are you sure you want to continue connecting (yes/no)? yes
      Warning: Permanently added 'server2.cluster.com,10.0.1.62' (RSA) to the list of known hosts.
      root@server2.cluster.com's password: 
      Now try logging into the machine, with "ssh 'root@server2.cluster.com'", and check in:
        .ssh/authorized_keys
      to make sure we haven't added extra keys that you weren't expecting.
      
    3. 拷贝过程中会要求你输入目标服务的登录密码。

      [root@redhatclient .ssh]# ssh server2.cluster.com
      Last login: Wed Apr  4 03:45:39 2018 from localhost
      [root@masterserver ~]# 
      

      拷贝完后,使用集群主机域名,挨个免密登录集群中的所有主机,以便将信息自动添加到known_hosts文件中。注册主机时,可能会自动校验known_hosts文件信息
      known_hosts文件信息:
      在这里插入图片描述

    展开全文
  • 诉求:jenkins部署流水线脚本中,需要跨内部linux服务器进行通信,为此去建立两台linux服务器互信,进行免密登录。   1、首先保证两台服务器(如本次需打通233、170间通信)是可通信的,处在相同局域网、彼此在互...
  • 将公钥上传到服务器 # ssh-copy-id IP # ssh-copy-id u1@172.16.1.105 第三步: 验证:ssh IP 或者:scp 传输文件验证 scp 文件名 user@host:files   转载于:...
  • 测试1号机 10.0.0.250 测试2号机 10.0.0.251 备注:操作系统Centos7.4 测试1号机(10.0.250) [root@cs-app1 ssh]# ssh-keygen #生成公钥 ...Generating public/private rsa key pair. ...Enter file in which to ...
  • 台linux服务器之间互信脚本

    千次阅读 2018-06-12 16:07:38
    用 vi /etc/hosts 编辑将要进行互信的多台服务器配置进入例:192.168.0.175 masters192.168.0.176 node1192.168.0.177 node22.然后创建互信脚本:#!/bin/sh#######################################################...
  • Linux互信互信失效问题

    千次阅读 2019-04-30 23:14:45
    - Linux互信的由来 在当前的服务器操作系统中,Linux操作系统占多数,接触过Linux系统的人都知道:通常情况下,登陆Linux系统需要输入用户名和密码。 用户名和密码本身是一种安全认证机制,可以很好地增加系统的安全...
  • vms001服务器操作 1.vms001生成公钥私钥 命令执行成功,会在~/.ssh目录下生成2个文件 id_rsa.pub为公钥文件,现实生活中相当于锁 id_rsa 为私钥文件,现实生活中相当于钥匙 2.借用ssh-copy-id工具把公钥上传到vms...
  • 在客户现场,某国产平台,配置机器互信时发现,A可以免密访问B,而B不能免密访问A,且B不能免密访问B,进行了下面的几个处理后搞定。 1)确定目录权限:/root/ 755/root/.ssh 700/root/.ssh/authorized_keys 600 ...
  • 两台Linux服务器建立信任关系

    千次阅读 2018-08-26 12:44:10
    如果在两台Linux服务器之间经常需要互相访问,但是需要经常手动输入密码,可以在两台服务器之间建立一个信任连接,然后把鉴权文件写到一个文件里 步骤1:先在主机A使用命令创建密钥 ssh-keygen -t rsa 步骤二:...
  • linux服务器互信

    2013-01-19 22:04:47
    今天研究linux互信的建立 基于双机的双机环境192.168.1.253 服务器192.168.1.92,192.168.1.94 互为双机 192.168.1.91为客户端 在91执行 Generating public/private rsa key pair. Enter file in which to save ...
  • ssh-keygen:创建公钥和密钥,会生成id_rsa和id_rsa.pub个文件ssh-copy-id:把本地的公钥复制到远程主机的authorized_keys文件(不会覆盖文件,是追加到文件末尾),并且会设置远程主机用户目录的.ssh和.ssh/authorized...
  • linux服务器互信免密

    2020-08-13 19:03:11
    linux服务器互信免密 假设有两台服务器,服务器A和服务器B 两个服务器分别root登录后执行 ssh-keygen -t dsa 会在 /root/.ssh目录下生成 id_dsa 及 id_dsa.pub两个文件(PS:一直敲回车即可不要输入任何东西) 将...
  • 两台服务器实现无密码登录 在服务器A上 ssh-keygen -t rsa # 三次回车 执行完成后生成两个文件Your identification has been saved in /root/.ssh/id_rsa. # 私钥Your public key has been saved in /root/.ssh/...
  • 服务器之间做互信

    2020-10-27 10:25:42
    服务器之间做互信 expect是交互性很强的脚本语言,可以帮助运维人员实现批量管理成千上百台服务器操作,是一款很实用的批量部署工具!expect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装。选择...
  • linux建立ssh、scp互信

    千次阅读 2017-07-13 21:38:00
     linux在操作两台服务器的时候,比如一台服务器是A,另一台服务器是B,现在我们想A服务器ssh或者scp到服务器B上的时候无需输入密码即可完成登录(ssh)和文件的复制(scp),那么按照正常的linux命令是需要输入密码...
  • Linux主机建立互信并远程执行脚本ssh建立互信shell脚本实现 ssh建立互信 使用ls -a查看家目录下是否有.ssh文件夹。如果没有,执行一次ssh localhost命令后会自动生成。 单向登录 在A主机上执行ssh-keygen命令生成...
  • Linux-SSH互信

    2020-04-01 13:11:32
    正常情况下,利用ssh客户端连接ssh服务器端,有服务器端维护把钥匙,并且将公钥发送至客户端,做ssh互信关系时,则由客户端维护把钥匙,发送一把公钥至服务器端。 4、文件信息说明 etc/ssh/文件夹中,ssh-...
  • linux 互信不生效

    千次阅读 2016-05-17 18:49:22
    1. 操作系统版本 1)操作系统  cat /etc/issue cat /etc/issue CentOS release 6.6 (Final) Kernel \r on an \m  cat /proc/version cat /proc/version ...Linux version 2.6.32-504.el6.x86_64 (mockbuild@c6b
  • (3)若存在互信,脚本不会清除authorized_keys,会追加公钥至authorized_keys文件 ''' ''' 主机存活检测命令''' pingCheck=['ping','-c','3','-i','0.2','-W','1'] ''' ssh-keygen 命令 ''' keygenCmd='''ssh-keygen...
  • 去年学过一段时间的现在密码学,最近在配置github, Linux主机之间建立信任关系的时候都用到了其中一些知识,所以刚好整理一下,想直接看操作方式的可直接拉到下面密码学基本知识一 现代密码学基本知识 现代密码学的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,998
精华内容 1,199
关键字:

linux两台服务器互信

linux 订阅