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
基于口令的安全验证git
准备两台Linux系统的虚拟机,一台作ssh服务器,另外一台作客户机用来远程登陆服务器,首先ssh服务是Linux系统默认安装好的,咱们能够直接进行配置文件的修改vim
[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进行登陆了bash
[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不能进行切换网络
基于密匙的安全验证dom
首先咱们要在配置文件中开启密钥验证登陆ssh
[root@linux6-1 ~]# vim /etc/ssh/sshd_config #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys //去掉前面的#注释,表示开启公钥、私钥验证 [root@linux6-1 ~]# service sshd restart 中止 sshd: [肯定] 正在启动 sshd: [肯定]
而后在客户机上产生公钥和私钥
先在客户机上建立一个zhangsan用户的映射用户zhaosiide
[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就能够了