ssh远程控制服务

简介

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台-包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

实验过程

基于口令的安全验证

准备两台Linux系统的虚拟机,一台做ssh服务器,另一台做客户机用来远程登录服务器,首先ssh服务是Linux系统默认安装好的,我们可以直接进行配置文件的修改

[root@linux6-1 ~]# vim /etc/ssh/sshd_config     //ssh的配置文件
#Port 22     //ssh的端口号
#PermitRootLogin yes     //默认允许root远程连接,但这里是注释掉的,所以我们要删掉#,把后面的yes 改为no

此时我们重启ssh服务,使用另一台Linux6-4来进行登录,但是这里我们要先创建一个用户用来登录,所以先创建用户,而且要允许这个用户远程登录

[root@linux6-1 ~]# vim /etc/ssh/sshd_config
AllowUsers zhangsan   //在刚刚修改的permitrootlogin那一段的后面加入允许zhangsan登录

[root@linux6-1 ~]# useradd zhangsan
[root@linux6-1 ~]# echo "123123" | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

好了,用户创建好之后我们就可以使用另一台Linux6-4进行登录了

[root@rhel6-4 ~]# ssh zhangsan@192.168.100.4     //进行远程登录
zhangsan@192.168.100.4's password:    //输入zhangsan用户的密码 
[zhangsan@linux6-1 ~]$      //然后就可以看到使用zhangsan用户在Linux6-4上登录了Linux6-1的系统了

 但是这里有一个问题了,如果我们知道root的密码,可以使用zhangsan用户直接切换到root用户,这样是不安全的
[zhangsan@linux6-1 ~]$ su - root
密码:
[root@linux6-1 ~]# 

所以我们要进行配置文件的修改,启用pam认证,在创建一个lisi用户,把zhangsan用户添加到wheel组里,然后就会看到zhangsan可以切换到root,而lisi就不能切换到root用户了

[root@linux6-1 ~]# useradd lisi      //创建lisi用户
[root@linux6-1 ~]# echo "123123" | passwd --stdin lisi
更改用户 lisi 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@linux6-1 ~]# gpasswd -a zhangsan wheel       //把zhangsan用户添加到wheel组
Adding user zhangsan to group wheel
[root@linux6-1 ~]# vim /etc/pam.d/su     //进入pam的配置文件启用pam认证

#auth            required        pam_wheel.so use_uid     //将这条前面的#删除,表示启用pam认证
[root@linux6-1 ~]# service sshd restart     //重新启动ssh服务
停止 sshd:                                                [确定]
正在启动 sshd:                                            [确定]

此时在客户机上使用zhangsan和lisi用户进行登录,会看到zhangsan可以切换到root,而lisi不能进行切换

image

image

基于密匙的安全验证

首先我们要在配置文件中开启密钥验证登录

[root@linux6-1 ~]# vim /etc/ssh/sshd_config

#PubkeyAuthentication yes
#AuthorizedKeysFile     .ssh/authorized_keys     //去掉前面的#注释,表示开启公钥、私钥验证

[root@linux6-1 ~]# service sshd restart
停止 sshd:                                                [确定]
正在启动 sshd:                                            [确定]

然后在客户机上产生公钥和私钥
先在客户机上创建一个zhangsan用户的映射用户zhaosi

[root@rhel6-4 ~]# useradd zhaosi
[root@rhel6-4 ~]# echo "123123" | passwd --stdin zhaosi
更改用户 zhaosi 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

[root@rhel6-4 zhaosi]# su - zhaosi     //切换到zhaosi用户
[zhaosi@rhel6-4 ~]$ 
[zhaosi@rhel6-4 ~]$ ssh-keygen -t rsa       //生成密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhaosi/.ssh/id_rsa): 
Created directory '/home/zhaosi/.ssh'.
Enter passphrase (empty for no passphrase):     //输入密钥密码,如123456
Enter same passphrase again: 
Your identification has been saved in /home/zhaosi/.ssh/id_rsa.
Your public key has been saved in /home/zhaosi/.ssh/id_rsa.pub.
The key fingerprint is:
07:2e:d3:12:ba:e8:d4:16:1e:82:87:1f:9d:9a:77:7c zhaosi@rhel6-4
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|      . .        |
| o . o + .       |
|o + * + S .      |
| o O = + .       |
|  * * o E        |
| o o . .         |
|  .              |
+-----------------+

就会看到产生了这样一个2048的密钥

然后我们可以查看密钥产生在哪里

[zhaosi@rhel6-4 ~]$ cd /home/zhaosi
[zhaosi@rhel6-4 ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla  .ssh      //密钥就在.ssh目录下
[zhaosi@rhel6-4 .ssh]$ ls
id_rsa  id_rsa.pub

然后我们通过zhaosi用户将私钥发送给zhangsan用户

[zhaosi@rhel6-4 .ssh]$ ssh-copy-id -i id_rsa.pub zhangsan@192.168.100.4

[zhaosi@rhel6-4 .ssh]$ ssh-copy-id -i id_rsa.pub zhangsan@192.168.100.4     //这里输入的是zhangsan用户的密码

然后我们在切换到ssh服务器(也就是linux6-1)去查看收到的私钥文件

[root@linux6-1 ~]# cd /home/zhangsan/.ssh
[root@linux6-1 .ssh]# ls
authorized_keys
[root@linux6-1 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4MH8kr9+D9uy8J+I8qldCrA6zFxzyRS1AnfOofHP0iDr6rS1nlKzMPIsQG1B3TWPhqbTEwtiiiS5omsCqoc4r79nOhwH8ys7bc+OPJIZtVai3PLepCD8w3LF5hjo8Q3j+WAiy5x2ZTooeVhTLYkmCJaz4/SsujwvbmsJeaxWphHu5Ka/6MNRH+zIzlF4MdRN6XSyI39ubbpOBqwRExXEIGnpw9OF31hFUBYMSoYz/aAHa3j+/CwOwgEXgtOVQNNksyjByvfQA2J5oMuJPSriMi9GDrN0mgw/7iPkXC9vmP5Hd/rniZvwz6UNHm+Quse4q9UIHwximCNPuIeuNl1VYQ== zhaosi@rhel6-4          //这里就是收到的私钥文件,在最后面可以看到是rhel6-4的zhaosi用户发送过来的

此时我们在用zhangsan用户在客户机上登录只用输入123456就可以了