linux服务器利用ssh、公钥和密匙实战详解

 

 

 

 

 

一、.我们先建好一上haiwen用户用来,做为密码钥和SSH对像

二、修改vi /etc/ssh/sshd_config 文件,禁用ROOT远程直接登录。

三、ssh的公钥认证配置,只能用密匙才能登录上。

四、生成登陆公钥与私钥

五、用私钥登录

六、为什么要作SSH公钥登录

下面是配置步骤:

1.创建一个用户haiwen,并设置好密码

linux服务器ssh、公匙和密钥实战详解_密匙

 

linux服务器ssh、公匙和密钥实战详解_linux_02

 

 

2.修改vi /etc/ssh/sshd_config 文件

 

linux服务器ssh、公匙和密钥实战详解_密匙_03

 

a、修改默认端口:默认Port为22,并且已经注释掉了;修改是把注释去掉,并修改成其它的端口。

 

linux服务器ssh、公匙和密钥实战详解_密匙_04

b、禁止root用户远程登陆:修改PermitRootLogin,默认为yes且注释掉了;修改是把注释去掉,并改成no。

 

linux服务器ssh、公匙和密钥实战详解_禁用root_05

 

c、PermitEmptyPasswords   no不允许空密码用户login

 

linux服务器ssh、公匙和密钥实战详解_linux_06

 

3.ssh的公钥认证配置:

修改vi /etc/ssh/sshd_config 文件

RSAAuthentication yes        # 启用 RSA 认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)

PubkeyAuthentication yes     # 启用公钥认证(默认是注释掉的,将注释去掉,如果不是yes,改为yes)

linux服务器ssh、公匙和密钥实战详解_ssh_07

PasswordAuthentication no    # 禁止密码认证(改为no,默认为yes是用密码认证)

linux服务器ssh、公匙和密钥实战详解_密匙_08

StrictModes no   #修改为no,默认为yes.如果不修改用key登陆是出现server refused our key(如果StrictModes为yes必需保证存放公钥的文件夹的拥有与登陆用户名是相同的.“StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。)

 

 

linux服务器ssh、公匙和密钥实战详解_密匙_09

 

 

4.生成公钥和密码匙

a.创建用户家目录里面的一个.ssh文件夹。这个是用来认证密匙的,也是生成公钥和密匙的一个文件夹

 

 

linux服务器ssh、公匙和密钥实战详解_linux_10

 

 

再转换用户到haiwen目录下,并生成密匙和公钥,并设置密码要大于4位数字。

这两步是密匙的密码,上面一步是密匙存放文件夹置

 

Enter passphrase (empty for no passphrase): 输入密码

Enter same passphrase again:再次输入密码

 

linux服务器ssh、公匙和密钥实战详解_ssh_11

 

5.生成好了密匙回到ROOT用户下,来配置相关的公钥和相关文件权限。

 

linux服务器ssh、公匙和密钥实战详解_linux_12

 

 

a,现在查看/home/lihaiwen/.ssh多了两个文件

 

id_rsa  id_rsa.pub

cd /home/111/.ssh

b,然后把id_rsa.pub文件内容存入authorized_keys

   cat id_rsa.pub > authorized_keys

 

linux服务器ssh、公匙和密钥实战详解_禁用root_13

 

c,chmod 644 authorized_keys在赋予644的权限

 

linux服务器ssh、公匙和密钥实战详解_禁用root_14

 

d,rm -rf id_rsa.pub在删除id_rsa.pub文件

 

linux服务器ssh、公匙和密钥实战详解_ssh_15

e,

 

authorized_keys  id_rsa

现在就剩下俩个文件,authorized_keys是公钥 id_rsa是密钥

只需要把密钥考出即可

 

 

linux服务器ssh、公匙和密钥实战详解_ssh_16

 

 

6,重启SSH服务

 

linux服务器ssh、公匙和密钥实战详解_密匙_17

 

 

7.用FXP软件,把LINUX服务器中的密匙COPY到用要用的客户端上

 

linux服务器ssh、公匙和密钥实战详解_linux_18

8.在客户端用ROOT远程是远程不了的了。

 

linux服务器ssh、公匙和密钥实战详解_禁用root_19

 

9.下面我们用Xshell进行密钥访问:
A,这里选择和设置如下,下面id_rsa就是选中的密匙文件,下面就是密匙密码。
 

linux服务器ssh、公匙和密钥实战详解_ssh_20

B.选项如图设置,我这里服务器IP是192.168.18.150。
 

linux服务器ssh、公匙和密钥实战详解_禁用root_21

 
C,登录成功
 
 

linux服务器ssh、公匙和密钥实战详解_禁用root_22

 
10,SSH公钥的作用
 
为什么要使用公钥认证
通常,通过ssh登录远程服务器时,使用密码认证,分别输入用户名和密码,两者满足一定规则就可以登录。但是密码认证有以下的缺点:
 
用户无法设置空密码(即使系统允许空密码,也会十分危险) 
密码容易被人偷窥或猜到 
服务器上的一个帐户若要给多人使用,则必须让所有使用者都知道密码,导致密码容易泄露,而且修改密码时必须通知所有人
而使用公钥认证则可以解决上述问题。
 
公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦 
多个使用者可以通过各自的密钥登录到系统上的同一个用户
公钥认证的原理
所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(public key),任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。
 
ssh 的公钥认证就是使用了这一特性