SSH配置+公钥证书认证方式登录

作者: zengde 分类: 笔记 发布时间: 2020-08-07 03:03

什么是SSH:

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。当主机中开启openssh服务,那么就对外开放了远程连接的接口,ssh为openssh服务的客户端,sshd为openssh服务的服务端。

实验:1.安装开启sshd服务,首先使用用户名、密码登录方式登录。

在虚拟机中登录CentOS 7操作系统,使用命令 systemctl status sshd.service 查看sshd服务状态

可以看到CentOS 7中是默认安装sshd服务的,接下来使用putty64工具登录系统

首先查看centos 7地址,使用命令ip addr

打开putty工具,在Host Name(or IP address)输入虚拟机IP,在Port输入默认端口号22,点击Open打开

使用虚拟机用户名、密码进行登录

centos7操作SSH/SSHD服务(查看/启动/重启/自启)

查看状态: systemctl status sshd.service

启动服务: systemctl start sshd.service

重启服务: systemctl restart sshd.service

开机自启: systemctl enable sshd.service

 

2.配置sshd,root用户不可登录

首先编辑/etc/ssh/sshd_config文件,使用命令vim /etc/ssh/sshd_config

修改PermitRootLogin后面的yes为no,将前面的#去掉,使用i进入编辑模式,进行修改,修改后按Esc,进入命令模式,然后用Shift ZZ保存退出。

重启sshd服务,使用命令 systemctl restart sshd.service

重新打开putty,连接虚拟机,输入root用户名,密码,进行登录。正确的密码提示Access denied ,访问被拒绝。

 

3.使用公钥证书认证方式登录,非密码方式。

首先修改配置文件/etc/ssh/sshd_config,将下列三项前面的注释# 去掉,就是可以让秘钥登录

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

 

下载puttygen.exe工具,双击打开

点击Generate,开始生成密钥,在页面中间空白区域来回移动鼠标,可以快速生成密钥。

区域内生成的就是公钥,“Key comment”保持不变也可以编辑,用来对密钥介绍。“Key passphrase”是用来给私钥加密,“Confim passphrase”是重复输入密码,使用认证登录时,只加载私钥输入这个密码就可以登录系统。点击Save private key保存私钥到本地

复制公钥到服务器。点击公钥进行复制,粘贴到/root/.ssh/authorized_keys文件下。首先使用 mkdir /root/.ssh 创建目录,命令 mkdir /root/.ssh

修改目录权限为700,命令 chmod 700 /root/.ssh/

新建文件anthorized_keys,命令 vim /root/.ssh/authorized_keys,将公钥粘贴进去,保存退出(此时可以设置root为可以登录,使用putty打开,进行复制粘贴)

然后就可以使用秘钥登录了,首先打开putty输入虚拟机IP,端口号22,点击左侧SSH下拉框,进入Auth模块

点击Browser加载,本地的私钥文件,打开

回到了PuTTY登录页面输入root

直接输入自己私钥密码即可登录

*需要注意的就是储存公钥的目录一定要修改权限为700,公钥内容别粘贴错

 

4.设置sshd日志,单独存放至/var/ssh/sshd.log中

首先修改ssh程序。使用命令vim  /etc/ssh/sshd_config打开配置文件,修改SyslogFacility AUTHPRIV为SyslogFacility local5,保存退出

然后修改日志程序。使用命令Vim /etc/rsyslog.conf打开日志程序(注意是rsyslog.conf!!!),添加如下两行代码,并保存退出

# save sshd messages also to sshd.log

local5.*  /data/log/sshd.log

重启sshd服务以及syslog服务。使用命令systemctl restart sshd.service       service rsyslog restart

打开PuTTY使用公钥证书认证方式登录,查看日志。tail /var/log/sshd.log