zoukankan      html  css  js  c++  java
  • [ssh 无密码访问]linux ssh公匙密匙无密码访问

    [ssh 无密码访问]linux ssh公匙密匙无密码访问

    作者:flymaster

    qq:908601287

    blog:http://www.cnblogs.com/flymaster500/

    1、所有机器创建用户及密码
    useradd oldgirl
    echo 123456|passwd --stdin oldgirl
    id oldgirl
    su - oldgirl
    2、m01创建密钥对
    ssh-keygen -t dsa 一路回车
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
    3、m01分发公钥
    ssh默认22端口
    ssh-copy-id -i .ssh/id_dsa.pub oldgirl@172.16.1.41
    更改过的ssh端口
    ssh-copy-id -i .ssh/id_dsa.pub "-p 52113 oldgirl@172.16.1.31"
    4、测试
    ssh -p52113 oldgirl@172.16.1.31 /sbin/ifconfig eth0
    ssh -p52113 oldgirl@172.16.1.41 /sbin/ifconfig eth0
    ssh -p52113 oldgirl@172.16.1.8 /sbin/ifconfig eth0
    成功标志!连接所有的机器,不提示密码直接可以操作。

    企业里实现ssh方案:3种
    1、直接root ssh key。
    条件:允许root ssh登录。

    2、sudo提权实现没有权限用户拷贝
    配置sudoers:
    echo "oldgirl  ALL=   NOPASSWD: /usr/bin/rsync" >>/etc/sudoers
    visudo -c

    scp -P52113 hosts oldgirl@172.16.1.41:~
    远程sudo:ls 
    ssh -p52113 -t oldgirl@172.16.1.41 sudo rsync ~/hosts /etc/hosts
    3、利用suid实现没有权限用户拷贝(做思维扩展了解)
    172.16.1.31:
    chmod u+s `which rsync`

    scp -P52113 hosts oldgirl@172.16.1.31:~
    ssh -p52113 oldgirl@172.16.1.31 rsync ~/hosts /etc/hosts

    rsync -avz hosts -e 'ssh -p 52113' oldgirl@172.16.1.41:~
    1、增量
    2、加密

    非交互式生成密钥及实现批量管理:
    1、所有机器创建用户及密码
    useradd oldgirl888
    echo 123456|passwd --stdin oldgirl888
    id oldgirl888
    su - oldgirl888
    2、m01创建密钥对
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1

    3、分发密钥
    ssh-copy-id -i .ssh/id_dsa.pub "-p 52113 oldgirl@172.16.1.31"

    #一键给多台服务器安装httpd服务:
    useradd gongli
    echo 123456|passwd --stdin gongli
    id gongli
    #2、sudo提权实现没有权限用户拷贝
    #配置sudoers:
    echo "gongli  ALL=   NOPASSWD: ALL" >>/etc/sudoers
    visudo -c
    su - gongli

    [oldgirl@m01 ~]$ cat m.sh
     ssh -p22 oldgirl@172.16.1.41 /sbin/ifconfig eth1 
     ssh -p22 oldgirl@172.16.1.31 /sbin/ifconfig eth1 
     ssh -p52113 oldgirl@172.16.1.8 /sbin/ifconfig eth1 
    [oldgirl@m01 ~]$ scp -P22 -rp /data oldgirl@172.16.1.31:~
    [oldgirl@m01 ~]$ scp -P22 -rp /data oldgirl@172.16.1.31:~
    [oldgirl@m01 ~]$ scp -P22 -rp /data oldgirl@172.16.1.31:~


    #!/bin/sh
    . /etc/init.d/functions
    i   echo "USAGE:$0 filename DST"
       exit 1
    fi

    for n in 31 41
    do
      scp -P22 -rp $1 oldgirl@172.16.1.$n:~ &>/dev/null &&
      ssh -p22 -t oldgirl@172.16.1.$n sudo rsync ~/$1 /$2/ &>/dev/null
      if [ $? -eq 0 ];then
       action "172.16.1.$n" /bin/true
      else
       action "172.16.1.$n" /bin/false
      fi
    done


     [oldgirl@m01 ~]$ cat view.sh 
    #!/bin/sh
    . /etc/init.d/functions
    if [ $# -ne 1 ];then
       echo "USAGE:$0 cmd"
       exit 1
    fi

    for n in 31 41
    do
      echo "------172.16.1.$n---------"
      ssh -p22 -t oldgirl@172.16.1.$n $1
    done 

    作者:flymaster

    qq:908601287

    blog:http://www.cnblogs.com/flymaster500/

    2. ssh无密码访问

    SSH-KeyGen 的用法  

    假设 A 为客户机器,B为目标机; 要达到的目的:

    A机器ssh登录B机器无需输入密码; 加密方式选 rsa|dsa均可以,默认dsa 做法:

    1、登录A机器

    2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

    3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys

    4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;      


    ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.
    具体方法如下:
    ssh-keygen -t rsa 然后全部回车,采用默认值. 这样生成了一对密钥,存放在用户目录的~/.ssh下。
    将公钥考到对方机器的用户目录下,并拷到~/.ssh/authorized_keys中。

    要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞 注意

    作者:flymaster

    qq:908601287

    blog:http://www.cnblogs.com/flymaster500/


    最后一定要在客户端和服务器 执行chmod -R 700 .ssh/ 否则配置是不成功的(每次登录都得重新去输入密码的)

  • 相关阅读:
    题解——loj6279 数列分块入门3 (分块)
    题解——loj6278 数列分块入门2 (分块)
    题解——loj6277 数列分块入门1(分块)
    题解——P1133 教主的花园DP
    题解——P1108低价购买(DP)
    题解——UVA11997 K Smallest Sums
    题解——洛谷P1550 [USACO08OCT]打井Watering Hole(最小生成树,建图)
    题解——CodeForces 438D The Child and Sequence
    题解——ATCoder AtCoder Grand Contest 017 B
    题解——洛谷P2827 NOIP提高组 2016 蚯蚓
  • 原文地址:https://www.cnblogs.com/flymaster500/p/10155852.html
Copyright © 2011-2022 走看看