zoukankan      html  css  js  c++  java
  • 如何在ssh远程linux服务器时不需要输入密码

    目的:

      期望A服务器在对B服务器执行ssh或者scp等命令的时候不需要输入密码

    实现方法:

      1.通过安装sshpass服务

      2.通过密钥验证的方式

    操作过程:

      一、通过sshpass的方式达到密码非交互

        1.安装sshpass服务(centeros 7上可直接yum安装,而centeros 6必须下载文件编译安装)

          yum install sshpass

        2.使用sshpass命令登陆远程服务器

          sshpass -p '密码' ssh root@192.168.0.1

          sshpass -p '密码' scp 1.txt root@192.168.0.1:/root

      二、通过密钥认证方式达到免交互免密码认证

        1.通过ssh-keygen命令生成公钥

          ssh-keygen -t rsa

        2.在/root/.ssh/目录下会生成一个'id_isa.pub'的文件,将其拷贝到目标主机

          scp /root/.ssh/id_isa.pub root@192.168.0.1:/root

          或者直接使用ssh-copy-id命令去复制公钥自动写入到authorized_keys文件中,这样就不需要接下来的手动复制公钥操作了

            ssh-copy-id -i /root/.ssh/id_isa.pub root@192.168.0.1

        3.将id_isa.pub里面的内容重定向到目标主机的/root/.ssh/authorized_keys文件中(如果没有.ssh目录和authorized_keys文件,需要自己手动创建)

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

          注意:authorized_keys权限一定要为600

        4.此时再登陆目标主机发现不需要输入密码

    sshpass方式与公钥认证对比:

      做过这个小实验就不难发现,sshpass命令中附带了明文密码,这时候如果用户权限管控不到位、或者在使用ps命令发现sshpass这个进程的时候都可以看到远程主机的密码,所以不建议这种方式,极力推荐ssh的密钥认证。

      

  • 相关阅读:
    SQL-LINQ-Lambda 语法对照
    C#.NET面向对象(语法点)
    4.5 基于STM32+MC20远程短信控制开关
    4.4 使用STM32控制MC20进行GPS帧数据解析
    4.3 使用STM32控制MC20进行GPRS通讯
    4.2 使用STM32控制MC20发送短信
    4.1 使用STM32控制MC20拨打电话
    3.6.使用STC89C52控制MC20解析GPS的经纬度数据上传到指定服务器
    3.5.基于STC89C52+MC20的短信远程控制开关LCD1602显示
    3.4 使用STC89C52控制MC20解析GPS的经纬度数据在LCD1602上显示
  • 原文地址:https://www.cnblogs.com/huskiesir/p/10193566.html
Copyright © 2011-2022 走看看