配置SSHD服务

  SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理 Linux 系统的首选方式。在此之前,一般使用 FTP 或 Telnet 来进行远程登录。但是因为它们 以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中 间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。

  想要使用 SSH 协议来远程管理 Linux 系统,则需要部署配置 sshd 服务程序。sshd 是基于 SSH 协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:

  1. 基于口令的验证-------用账号和密码登录
  2. 基于密钥的验证-------需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;

超哥之前说过“Linux一切接文件”,也就是在Linux系统中修改服务程序,都得去修改它对应的配置文件,sshd程序的配置文件是/etc/ssh/sshd_config,检查配置文件参数

grep -v '^#' /etc/ssh/sshd_config |grep -v '^$'

在RHEL7系统中,已经默认安装启动了SSHD服务,

使用密码登录

ssh 192.168.12.15

基于口令的认证

1.在第一次登录的时候,系统会出现下面的提示信息:

The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?

上面的信息说的是:无法确认主机ssh-server.example.com(12.18.429.21)的真实性,不过知道它的公钥指纹,是否继续连接?

输入yes之后,那么该host key会被加入到Client的known_hosts中,格式如下

pyyuc.cn,123.206.16.61 ecdsa-sha2-nistp256....

终端提示如下:

Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts.
Password: (enter password)

提示该host已经被确认,并追加到文件known_hosts中,然后就要输入密码,之后的流程如图

私钥是server端独有的,即使client的信息泄露,也没有私钥进行解密,保证数据安全。

使用安全秘钥

加密是对信息进行编码和解码的技术,它通过一定的算法将原本可以直接阅读的铭文信息转换成密文。密钥就是密文的钥匙,有私钥和公钥之分。

在数据传输时,担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再传送。这样只有掌握私钥的用户才能解密这段数据,除此之外的其让人即使截取了数据,也很难将其破解成明文。

基于公钥的免密登录

1.在客户端主机生成“秘钥对”

ssh-keygen   

2.第二步:吧客户端主机中生成的公钥文件传送至远程主机:

3.对服务器端进行设置,使其只能允许秘钥登录,拒绝口令登录,然后重启sshd服务

vim /etc/ssh/sshd_config
PasswordAuthentication no systemctl restart sshd

4.在客户端即可免密登录服务器了

ssh root@123.206.16.61

linux net通信 基于密钥的更多相关文章

  1. 如何在 Linux 中配置基于密钥认证的 SSH

    什么是基于 SSH 密钥的认证? 众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议.无论何时使用 SSH 在 ...

  2. SSH服务搭建、账号密码登录远程Linux虚拟机、基于密钥的安全验证(Windows_Xshell,Linux)

    问题1:如果是两台虚拟机ping不同且其中一个虚拟机是克隆的另一个,需要更改一下MAC地址,关机状态下 一> "编辑虚拟机设置" 一>" 网络适配器" ...

  3. Linux下c基于openssl生成MD5的函数

    Linux下openssl提供了一系列哈希及加密的函数,如果调用openssl提供的MD5函数生成任意字符串的MD5呢?下面提供了一段代码实现Linux下c字符串生成md5的函数. 具体代码: 1 2 ...

  4. Linux进程通信----匿名管道

    Linux进程通信中最为简单的方式是匿名管道 匿名管道的创建需要用到pipe函数,pipe函数参数为一个数组表示的文件描述字.这个数组有两个文件描 述字,第一个是用于读数据的文件描述符第二个是用于写数 ...

  5. Linux学习笔记——基于鸟哥的Linux私房菜

    Linux学习笔记--基于鸟哥的Linux私房菜 ***** ARM与嵌入式linux的入门建议 (1) 学习基本的裸机编程:ARM7或ARM9,理解硬件架构和控制原理 (这一步是绝对的根基) (2) ...

  6. 批量远程执行linux服务器程序--基于paramiko(多线程版)

    批量远程执行linux服务器程序--基于paramiko paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 具体安装方法这里不写,网 ...

  7. Linux之加密(基于key认证、建立私有云CA)

    对称加密: 一般的加密是用一个密码加密文件,解密用同样的密码,加密解密用一把密钥 非对称加密: 一个密码加密文件,解密却用另外一组密码,意思就是加密解密的密码不一样,其结果就是用这一组密钥中的一个来加 ...

  8. Linux版本划分——基于打包方式

    基于Dpkg (Debian系) Debian GNU / Linux是一种强调使用自由软件的发行版.它支持多种硬件平台.Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为包管 ...

  9. sshd服务及基于密钥远程登陆(无需密码)

    上一条博客说明了用sshd服务远程登陆另一个系统,但是需要密码,如果不用密码呢?有没有简便的方法呢?下面为大家介绍一下,也就是基于密钥的安全验证:需要在本地生成”密钥对“后将公钥传送至服务端,进行公共 ...

随机推荐

  1. Kali Linux 2019.4 vmtool安装

    1.如图点击 2.桌面上光盘把vmtool拿出来 然后解压加权限并执行 3.一路回车即可 如下图安装成功 然后reboot重启即可

  2. vigil rpm 包制作

    vigil 可以方便的进行服务的监控,以下尝试制作一个rpm 包,方便使用 安装依赖 ruby yum -y install ruby rubygems ruby-devel  修改gem 源 可选, ...

  3. 28-ESP8266 SDK开发基础入门篇--编写wifi模块TCP 客户端程序(官方API版,非RTOS版)

    https://www.cnblogs.com/yangfengwu/p/11432795.html 注:这节实现的功能是WIFI模块作为TCP 客户端,连接咱的TCP服务器,然后实现透传 本来想着做 ...

  4. SQL必知必会收集学习

    1.按查询列位置排序:如按第一列 降序排序 desc

  5. Vector(动态数组)怎么用咧↓↓↓

    定义方式:vector<int> a; //二维vector<int>a[100] 在末尾压入容器:a.push_back(x);//二维 a[i].push_back(x) ...

  6. 四种CSS样式的引入方式

    准备 1.首先准备一个html文件:test.html,不建议使用记事本创建文件,建议使用Notepad++来创建并编辑文件,注意编码格式为:以UTF-8无BOM格式编码,否则会出现中文乱码,内容如下 ...

  7. 检测算法简介及其原理——fast R-CNN,faster R-CNN,YOLO,SSD,YOLOv2,YOLOv3

    1 引言 深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理.本文着重与分析目标检测领域的深度学习方法,对其中的经典模型框架进行深入分析. 目标检测可以理解为是物 ...

  8. SDN阅读作业(二)

    前言碎碎念 当我看到这个全英论文以后,身体和心理都出现了戒断反应,让人无比难受,毕竟自己很久没做过英语阅读理解了.总之,在舍友大佬的帮助下以及各款翻译软件的鼎力支持之下(通篇读完后还是找了中文文献来对 ...

  9. Spring Boot 配置文件 bootstrap vs application 到底有什么区别?

    用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .pr ...

  10. Java 自定义异常

    新建类CustomException继承 Exception /** * Create by on 2019-07-30 * 自定义类需要继承Exception * @author lsw */ pu ...