1)密码登录:

这对我们来说太熟悉了, 换句话说我们对密码这东西太熟悉了, 几乎随处都会用到. 登录只是密码的一个应用场景之一. 但是密码常见的风险在于, 一是可能泄露, 二是被破解的风险

2)证书登录:

这里说的证书其实就是密钥. 在非对称加密中, 密钥分为公钥和私钥. 私钥, 即密钥所有人持有. 公钥则公布给他人. 公钥和私钥成对使用, 互相解密. 公钥加密数据只能用私钥解密; 私钥加密则只能用公钥解密(验证)

3)证书登录原理:

密钥对生成后, 公钥存储于远程服务器. 登录时远程服务器向客户端发送随机字符串, 客户端以私钥加密后返回服务器, 服务器再以公钥解密. 解密成功则证明客户端合法, 允许登录

4)配置证书登录

4.1. 登录用户:

首先在服务器生成公钥和私钥. 因为密钥与登录用户是对应的, 所以生成的密钥仅对当前用户有效. 本次以testcc用户登录

testcc用户登录, 并且当前路径位于用户的默认home目录下

[root@localhost openssh-8.8p1]# su testcc

4.2. 创建公钥私钥:

[testcc@localhost openssh-8.8p1]$ ssh-keygen -t rsa

ssh-keygen是一个用来生成和管理ssh密钥的工具

-t参数用于指定密钥类型, 或者说加密算法. 本次使用rsa算法. 除此以外还有rsa1, dsa可选

执行命令后会提示输入用于保存密钥对的路径. 默认位于/home/用户/.ssh目录下. 确认无误则直接回车

centos7无法登录 centos7single登录_linux

提示目录已创建, 同时要求输入证书密码. 该密码用于客户端使用证书时验证(要不然把证书文件复制走了岂不可以随便登录了?), 与用户登录密码没有任何关系. 而且也有提示: 不想设密码的话保留为空即可, 不输入任何内容直接回车

centos7无法登录 centos7single登录_服务器_02

然后要求再确认一次. 有密码就重复输入一次, 没有密码当然直接回车确认

centos7无法登录 centos7single登录_客户端_03

密钥生成成功, 并提示保存路径, 以及打印密钥指纹

4.3). 写入公钥

进入证书存储目录

[testcc@localhost openssh-8.8p1]$ cd /home/testcc/.ssh

[testcc@localhost .ssh]$ ls

id_rsa  id_rsa.pub

[testcc@localhost .ssh]$ cat ./id_rsa.pub >> ./authorized_keys

[testcc@localhost .ssh]$ ls

authorized_keys  id_rsa  id_rsa.pub

[testcc@localhost .ssh]$ chmod 600 authorized_keys

[testcc@localhost .ssh]$ cd ..

[testcc@localhost ~]$ chmod -R 700 .ssh

将公钥写入authorized_keys. 目录下多出一个文件authorized_keys

[testcc@localhost .ssh]$ su root

Password:

[root@localhost .ssh]# vim /etc/ssh/sshd_config

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

#RSAAuthentication yes

opessh7.4已取消此项 !!!看release notes发行说明很重要

PasswordAuthentication 改为yes

AuthenticationMethods publickey,password

重启SSH服务:

[root@localhost .ssh]# systemctl restart sshd

4.4). win下使用putty密钥+密码登录ssh

打开puttygen.exe生成ppk文件

centos7无法登录 centos7single登录_ssh_04

把id_rsa私钥从服务器下载下来

载入刚才下载的私钥(一定先下载下来再去修改配置)

centos7无法登录 centos7single登录_客户端_05

centos7无法登录 centos7single登录_centos7无法登录_06

输入生成密钥时输入的密码

centos7无法登录 centos7single登录_客户端_07

保存私钥,选择SSH-2 RSA

centos7无法登录 centos7single登录_ssh_08

打开putty

centos7无法登录 centos7single登录_服务器_09

选择刚才保存的ppk私钥,然后打开

centos7无法登录 centos7single登录_ssh_10

输入该密钥的用户名,密码进行登录

centos7无法登录 centos7single登录_客户端_11

4.5). win下使用xhsell7密钥+密码登录ssh

下载最新的xshell7版本,个人免费版

centos7无法登录 centos7single登录_ssh_12

centos7无法登录 centos7single登录_ssh_13

centos7无法登录 centos7single登录_ssh_14

导入私钥,输入私钥密码

centos7无法登录 centos7single登录_centos7无法登录_15

登录成功

centos7无法登录 centos7single登录_linux_16