博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下的sshd服务
阅读量:2344 次
发布时间:2019-05-10

本文共 2849 字,大约阅读时间需要 9 分钟。

一.sshd简介

sshd(secure shell):可以通过网络在主机中开启shell的服务

客户端软件的连接方式:

ssh username@ip	          ##文本模式的连接ssh -X username@ip	      ##可以在连接成功后开启图形

实验如下:

首先,我这个实验是由两台虚拟机进行,我们可根据上一篇博客来设置虚拟机server。

设置好的虚拟机server,它的ip是172.25.66.215

在这里插入图片描述

为了清楚的分辨两台虚拟机,我给两台虚拟机分别修改了名字

服务端虚拟机

在这里插入图片描述
客户端虚拟机

在这里插入图片描述

文本模式的连接

在这里插入图片描述

注意:第一次连接陌生主机是需要建立认证文件,所以会询问是否建立,需要输入yes,再次连接此台主机时,因为已经生成root/.ssh/know_hosts文件所以不需要再次输入yes

在连接后成功开启图形

在这里插入图片描述

二.sshd的key认证

key加密方式为非对称加密(即使用公钥加密,私钥解密)

也可以实现免密登陆

实验如下:

这个实验需要在纯净的环境下进行,如果以前做过这个实验要rm -rf /root/.ssh/*

在这里插入图片描述

1.生成认证KEY,设置公钥并生成锁

[root@server ~]# ssh-keygen                              ##生成密钥的命令Generating public/private rsa key pair   Enter file in which to save the key (/root/.ssh/id_rsa): ##![指定保存加密字符]Enter passphrase(empty for no passphrase):           ##设定密码(使用空格)Enter same passphrase again:                     ##确认密码

在这里插入图片描述

查看是否生成密钥
在这里插入图片描述

也可使用以下代码跳过

ssh-keygen -f /root/.ssh/id_isa  -P "")           默认保存,输入密码

在这里插入图片描述

2.上传公钥

ssh-copy-id  -i  /root.ssh/id_rsa.pub  root@172.25.66.215      #####给自己                                                            172.25.66.215上锁

在这里插入图片描述

查看给自己上锁是否成功

在这里插入图片描述

3.分发钥匙

scp  /root/.ssh/id_rsa   root@172.25.66.115:/root/.ssh/     将自己的钥匙复                                                    制给client(172.25.66.115)

在client虚拟机里查看== ls -ld /root/.ssh/==

看是否有这个目录,如果没有,去连接一下,在输入密码时候ctrl+c
ls -l /root/.ssh/
看这个目录里是否有复制过来的东西
在这里插入图片描述
此时client并没有复制过来的东西,进行以下操作:
在这里插入图片描述
再去查看
在这里插入图片描述
为了确保,我们去测试。

测试

在这里插入图片描述

这说明我们已经实现了免密登陆。

三.ssh的安全设定

1.是否允许用户通过登陆系统的密码做sshd的认证(不让其他用户去试密码)

如图所示:

在这里插入图片描述
我们知道,远程登录只要知道用户名和密码就可以登陆,但是只知道用户名不知道密码的时候,我们可以一个一个去试,如上图,但这样极不安全,为了解决这个问题,我们进行以下实验。

实验:

1.vim /etc/ssh/sshd_config                          进去更改sshd配置中的文件

在这里插入图片描述

修改78行 将其修改为no

原来的:

在这里插入图片描述
注意:PasswordAuthentication yes/no 是否允许用户通过登陆系统的密码做sshd的认证

现在修改为:

在这里插入图片描述

2. systemctl restart sshd.service        重启ssh服务,让服务生效

在这里插入图片描述

修改完记得还原参数

测试

在这里插入图片描述

总结:会发现不允许用户通过登陆系统的密码做sshd的认证(不给你试密码的权利)

(2)设置是否允许root用户通过sshd服务的认证

由图可看:

在这里插入图片描述

我们可以看到真机可以以root用户去通过sshd,登陆我们的虚拟机,这样不安全,为了解决这个问题,我们可以进行一下操作

实验如下:

1.vim /etc/ssh/sshd_config                          进去更改sshd配置中的文件

在这里插入图片描述

修改48行,将其改为no,有#的话,将#删除掉(#后面的内容系统不读取)

原来的:

在这里插入图片描述

注意:PermitRootLogin yes/no ##是否允许root用户通过sshd服务的认证

修改之后:

在这里插入图片描述

2.systemctl restart sshd.service

在这里插入图片描述

测试:

在这里插入图片描述

修改完记得还原参数

3.黑名单与白名单

Allowusers  westos	    ##设定用户白名单,白名单指默认不在名单中的用户不能使用sshdDenyusers westos	      ##设定用户黑名单,黑名单指默认不在名单中的用户可以使用sshd

两者没有同时存在的必要

黑名单实验如下:

1.在服务端建立一个用户westos

在这里插入图片描述

此时我们可以看到是可以根据westos用户名和密码来登陆

在这里插入图片描述

2.vim /etc/ssh/sshd_config                          进去更改sshd配置中的文件

在这里插入图片描述

加入以下命令

在这里插入图片描述

3.systemctl restart sshd.service

在这里插入图片描述

测试如下:

在这里插入图片描述

白名单实验:

在vim /etc/ssh/sshd_config 文件中加入以下命令

在这里插入图片描述

重启服务:systemctl restart sshd.service

测试如下:

在这里插入图片描述

四.添加sshd登陆信息

1.vim /etc/motd        ##文件内容就是登陆后显示的信息

在这里插入图片描述

在里面输入以下内容:

在这里插入图片描述

测试:

在这里插入图片描述

总结:会显示之前添加的sshd登陆信息

五.用户的登陆查看

1.w命令

命令 含义
w 查看正在使用当前系统的用户
w -f 查看使用来源
w -i 显示IP

w显示的信息都在/var/run/utmp下

如图所示:

在这里插入图片描述

2.last命令                         ##试图查看使用过并退出的用户信息

last中的信息都存放/var/log/wtmp 下

如图所示:

在这里插入图片描述

3.lastb                                      ##试图登陆但没成功的用户信息

lastb中的信息都存放 /var/log/btmp下

如图所示:

在这里插入图片描述

测试

将连接虚拟机的主机用命令杀死

1.去连接虚拟机

在这里插入图片描述

2.查看并杀死

在这里插入图片描述

转载地址:http://gvjvb.baihongyu.com/

你可能感兴趣的文章
删除链表中重复的节点——重复节点保留一个
查看>>
实战c++中的vector系列--正确释放vector的内存(clear(), swap(), shrink_to_fit()).md
查看>>
链表排序.md
查看>>
进程与线程的区别与联系、进程与线程的通信方式
查看>>
产生死锁的必要条件及处理方法
查看>>
TCP和UDP的区别
查看>>
事务具有四个特性
查看>>
Hadoop Hdfs 配置
查看>>
tsung集群测试
查看>>
oracle定时删除表空间的数据并释放表空间
查看>>
解决文件提示: /bin/ksh^M: bad interpreter: bad interpreter:No such file or directory
查看>>
ajaxanywhere jsp 使用
查看>>
jquery的使用
查看>>
如何静态化JSP页面
查看>>
XML 与 Java 技术: 用 Castor 进行数据绑定
查看>>
Python未知领域系列:(附Python学习教程+Python学习路线)Python高级教程之面向对象
查看>>
盘点Python 面向对象编程最容易被忽视的知识点
查看>>
Python:一个可以套路别人的python小程序
查看>>
用Python告诉你:这些年,我们点过的的那些外卖
查看>>
如何美观地打印Python对象?这个标准库可以简单实现
查看>>