zoukankan      html  css  js  c++  java
  • 多台Linux服务器SSH相互访问无需密码--转

    一、环境配置

    1、系统:CentOS release 5.6   IP:192.168.4.200   主机名:JW01

    2、系统:CentOS release 5.9   IP:192.168.4.244   主机名:JW02

    3、系统:CentOS release 5.3   IP:192.168.4.232   主机名:KT01

    4、系统:Red Hat  release 4   IP:192.168.4.201   主机名:KT02

    二、服务器配置

    1、在每台服务器上都执行ssh-keygen -t rsa 生成密钥

    [root@jw01 .ssh]# ssh-keygen -t rsa
    [root@jw02 .ssh]# ssh-keygen -r rsa
    [root@kt01  .ssh]# ssh-keygen -t rsa
    [root@kt02  .ssh]# 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:
    04:45:0b:47:10:92:0c:b2:b9:d7:11:5b:49:05:e4:d9 
    root@jw01

    2、在每台服务器上将公钥复制到无需登录的服务器上,如192.168.4.200 /244/232/2014台做相互无需密码登录,在每台服务器生成密钥后,在每一台服务器上执行ssh-copy-id的命令;以192.168.4.200为例;其他三台服务器也是同样的操作;

    例:192.168.4.200
    [root@jw01 ~]# cd ~/.ssh
    [root@jw01 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22 
    root@192.168.4.244"
    [root@jw01 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22 root@192.168.4.232"
    [root@jw01 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22 root@192.168.4.201"

    root@192.168.4.244's password:              #输入密码
    Now try logging into the machine, with "ssh '-p 22 
    root@192.168.4.244'", and check in:
     .ssh/authorized_keys
    to make sure we haven't added extra keys that you weren't expecting.
    以上信息出现就代表复制成功!

    以上,可以自动将公钥添加到authorized_keys的文件中,在每台服务器都执行完以上的步骤就可以实现多台服务器无需密码相互访问了。

    三、故障处理

    1、如果ssh-copy-id 函数在远程服务器不存在;如下

    [root@kt02 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22
    root@192.168.4.244"
    -bash: ssh-copy-id: command not found

         可以尝试用一下命令解决,直接复制本地的pubkey内容到远程服务器;

    [root@kt02 .ssh]# cat ~/.ssh/id_*.pub | ssh  root@192.168.4.244 'cat > .ssh/authorized_keys'

    四、登录SSH

    1、登录远程服务器就不需要密码:

    [root@kt02 .ssh]# ssh root@192.168.4.244

    2、登录远程服务器有端口的需要添加端口-P

    [root@jw02 .ssh]# ssh ken@223.73.125.198 -p 511190

    3、你依然被要求输入远程服务器密码, 那说明你的用户在远程服务器上面没有足够的权限;请查看一下你的远程登录的用户以及authorized_keys文件在哪个用户的目录下。

    本文出自 “&思远晨曦” 博客,请务必保留此出处http://kling.blog.51cto.com/3320545/1132800

  • 相关阅读:
    root用户Linux 环境变量的配置解决(-bash: jps: command not found)有关问题
    Linux Crontab内环境变量与Shell环境变量的关系及解决问题的办法
    RocketMQ os.sh 系统优化(CentOS)
    Spring Boot修改内置Tomcat端口号
    SpringBoot多跨域请求的支持(JSONP)
    [译]Spring Boot 构建一个RESTful Web服务
    delphi怎样把子窗体显示在pagecontrol的tabsheet
    delphi从TRichEdit获得RTF格式文本(PC版本)
    数据类型表(DELPHI、C++)
    对程序进行注释
  • 原文地址:https://www.cnblogs.com/davidwang456/p/3710871.html
Copyright © 2011-2022 走看看