zoukankan      html  css  js  c++  java
  • [SSH服务]——一个SSH无密码登陆实验

    实验拓扑图

                  

    实验描述

          机房内有两台服务器:

                (1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00

                (2)C服务器10.0.10.191,充当Mysql服务器,有普通用户user_00

           有服务器A 10.0.10.198,供管理员平常使用来管理机房内的机器。为方便起见,所以要求做到:

                (1)A服务器能SSH远程登录(以user_00的身份)到B和C,且实现无密码登陆;

                (2)远程登录后,user_00可以直接sudo到root而不需要密码。

    SSH工作原理详解可参考我的博文:《ssh详解》


    在服务器B:10.0.10.158上的操作

    # 创建普通用户user_00
    [root@lyj1 .ssh]# useradd user_00
    [root@lyj1 .ssh]# passwd user_00
    # 编辑SSH配置文件
    [root@lyj1 .ssh]# vim /etc/ssh/sshd_config 
    Port 22
    PermitRootLogin no              #禁止以root用户登录
    PubkeyAuthentication yes        #允许使用Key进行登录
    # 重启SSH服务使配置更改生效
    [root@lyj1 .ssh]# service sshd restart
    Stopping sshd:                                         [  OK  ]
    Starting sshd:                                         [  OK  ]
    

    在服务器C:10.0.10.191上的操作

    # 创建普通用户user_00
    [root@lyj2 .ssh]# useradd user_00
    [root@lyj2 .ssh]# passwd user_00
    # 编辑SSH配置文件
    [root@lyj2 .ssh]# vim /etc/ssh/sshd_config 
    Port 22
    PermitRootLogin no              #禁止以root用户登录
    PubkeyAuthentication yes        #允许使用Key进行登录
    # 重启SSH服务使配置更改生效
    [root@lyj2 .ssh]# service sshd restart
    Stopping sshd:                                         [  OK  ]
    Starting sshd:                                         [  OK  ]
    

      

    在服务器A:10.0.10.198上的操作

    # 切换到user_00的家目录/home/user_00下
    [root@localhost ~]# su - user_00
    [user_00@localhost ~]$ pwd
    /home/user_00
    # 生成公钥和私钥
    [user_00@localhost ~]$ ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user_00/.ssh/id_rsa): 
    Created directory '/home/user_00/.ssh'.                             #在用户的家目录/home/user_00下创建.ssh目录
    Enter passphrase (empty for no passphrase):                         #要求输入加密短语(可以不输)
    Enter same passphrase again:                                        #再次输入加密短语
    Your identification has been saved in /home/user_00/.ssh/id_rsa.    #生成了私钥存放在用户家目录下的.ssh/id_rsa
    Your public key has been saved in /home/user_00/.ssh/id_rsa.pub.    #生成了公钥存放在用户家目录下的.ssh/id_rsa.pub
    The key fingerprint is:
    7f:02:95:d2:12:c9:41:27:c8:50:66:aa:5c:68:69:73 user_00@localhost.localdomain
    The key's randomart image is:
    +--[ RSA 2048]----+
    |    .+++=o.      |
    |   o +o o= .     |
    |  * E   o +      |
    | + =     +       |
    |  o     S        |
    |         o       |
    |          o .    |
    |           o     |
    |                 |
    +-----------------+
    [user_00@localhost ~]$ pwd
    /home/user_00
    [user_00@localhost ~]$ ls ./.ssh/                           #家目录/home/user_00下有了.ssh目录,该目录下也产生了公钥和私钥文件
    id_rsa   id_rsa.pub
    
    [user_00@localhost ~]$ cd .ssh/
    [user_00@localhost .ssh]$ cat id_rsa.pub > authorized_keys  #将公钥复制一份并命名为authorized_keys
    [user_00@localhost .ssh]$ chmod 644 authorized_keys         #将authorized_keys的权限改为644 #这个权限一定要改!
    [user_00@localhost .ssh]$ ll
    总用量 12
    -rw-r--r-- 1 user_00 user_00  411 6月  23 19:07 authorized_keys
    -rw------- 1 user_00 user_00 1743 6月  23 19:02 id_rsa
    -rw-r--r-- 1 user_00 user_00  411 6月  23 19:02 id_rsa.pub
    

    为了实现A能无密码SSH登录到B和C,则必须使得B和C信任A,即让B和C拥有A的公钥。

    方法是将A服务器上的/home/user_00/.ssh/authorized这个公钥,拷贝到B和C上各自的/home/user_00/.ssh目录下去。

    要注意拷贝过去之后.ssh目录和authorized文件的属主属组和权限(否则很容易出错)。

           

           

    这个时候A可以以user_00用户的身份无密码登陆到B和C了,但因为user_00是普通用户,所以sudo到root用户还是需要密码:

    [user_00@localhost ~]$ ssh 10.0.10.191
    Last login: Thu Nov 26 02:10:22 2009 from 10.0.10.198
    [user_00@localhost ~]$ ssh 10.0.10.191
    Last login: Thu Nov 26 02:56:53 2009
    [user_00@lyj2 ~]$ sudo mkdir /test
    [sudo] password for user_00: 
    

    为了实现user_00用户可以直接sudo到root用户,我们可以分别修改B和C上的/etc/sudoers文件,添加如下内容:

     

    这样一来,user_00再sudo到root用户就不需要再输入密码了:

    [user_00@localhost ~]$ ssh 10.0.10.191
    Last login: Thu Nov 26 02:57:43 2009 from 10.0.10.198
    [user_00@lyj2 ~]$ sudo mkdir /test2
    

      

      

      

  • 相关阅读:
    day4-叶卓睿
    day3-任清宇
    Cisco show interface 命令详解
    k8s入门系列之guestbook快速部署
    k8s入门系列之扩展组件(二)kube-ui安装篇
    k8s入门系列之扩展组件(一)DNS安装篇
    k8s入门系列之介绍篇
    k8s入门系列之集群安装篇
    SPAN, RSPAN, ERSPAN
    在Linux下记录所有用户的登录和操作日志
  • 原文地址:https://www.cnblogs.com/snsdzjlz320/p/5612389.html
Copyright © 2011-2022 走看看