linux net通信 基于密钥
配置SSHD服务
SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理 Linux 系统的首选方式。在此之前,一般使用 FTP 或 Telnet 来进行远程登录。但是因为它们 以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中 间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。
想要使用 SSH 协议来远程管理 Linux 系统,则需要部署配置 sshd 服务程序。sshd 是基于 SSH 协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:
- 基于口令的验证-------用账号和密码登录
- 基于密钥的验证-------需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;
超哥之前说过“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通信 基于密钥的更多相关文章
- 如何在 Linux 中配置基于密钥认证的 SSH
什么是基于 SSH 密钥的认证? 众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议.无论何时使用 SSH 在 ...
- SSH服务搭建、账号密码登录远程Linux虚拟机、基于密钥的安全验证(Windows_Xshell,Linux)
问题1:如果是两台虚拟机ping不同且其中一个虚拟机是克隆的另一个,需要更改一下MAC地址,关机状态下 一> "编辑虚拟机设置" 一>" 网络适配器" ...
- Linux下c基于openssl生成MD5的函数
Linux下openssl提供了一系列哈希及加密的函数,如果调用openssl提供的MD5函数生成任意字符串的MD5呢?下面提供了一段代码实现Linux下c字符串生成md5的函数. 具体代码: 1 2 ...
- Linux进程通信----匿名管道
Linux进程通信中最为简单的方式是匿名管道 匿名管道的创建需要用到pipe函数,pipe函数参数为一个数组表示的文件描述字.这个数组有两个文件描 述字,第一个是用于读数据的文件描述符第二个是用于写数 ...
- Linux学习笔记——基于鸟哥的Linux私房菜
Linux学习笔记--基于鸟哥的Linux私房菜 ***** ARM与嵌入式linux的入门建议 (1) 学习基本的裸机编程:ARM7或ARM9,理解硬件架构和控制原理 (这一步是绝对的根基) (2) ...
- 批量远程执行linux服务器程序--基于paramiko(多线程版)
批量远程执行linux服务器程序--基于paramiko paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 具体安装方法这里不写,网 ...
- Linux之加密(基于key认证、建立私有云CA)
对称加密: 一般的加密是用一个密码加密文件,解密用同样的密码,加密解密用一把密钥 非对称加密: 一个密码加密文件,解密却用另外一组密码,意思就是加密解密的密码不一样,其结果就是用这一组密钥中的一个来加 ...
- Linux版本划分——基于打包方式
基于Dpkg (Debian系) Debian GNU / Linux是一种强调使用自由软件的发行版.它支持多种硬件平台.Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为包管 ...
- sshd服务及基于密钥远程登陆(无需密码)
上一条博客说明了用sshd服务远程登陆另一个系统,但是需要密码,如果不用密码呢?有没有简便的方法呢?下面为大家介绍一下,也就是基于密钥的安全验证:需要在本地生成”密钥对“后将公钥传送至服务端,进行公共 ...
随机推荐
- PJ8搜索
1,P1036 2,枚举子集 3,P1378 我觉得先需要一个排列,而且是n中取n的那种. 然后按照每个顺序进行模拟扩展,得出最大面积(体积?) 最后就更新最大值没什么说的. 1,啥是搜索,主要是一个 ...
- HTML音乐标签和滚动
<!-- 音乐标签 --> <embed src="1.mp3" type=""> <embed src="1.mp3& ...
- CSS3 之书页阴影效果
视觉如下: CSS3 之书页阴影效果: <html> <head> <meta charset="UTF-8"> <title>书页 ...
- delphi调用https接口
delphi调用http接口直接使用idhttp就可以了,但是调用https接口的时候就需要和IdSSLIOHandlerSocket1控件一起使用. 截图中是两个控件的具体配置,需要注意的是IdSS ...
- Hdu 5093 Battle Ship
每个海面要么放要么不放,因此可以用二分图匹配, 考虑把同一行内的能互相看到的点放到一个行块里,同一列内能看到的点放到一个列块里,然后每一个行块都可以和该行块里所有海面的列块连边,选了这个行块,就必须选 ...
- centos7 安装postgresql11
1 进入postresql官网下载页面,提示了centos相关下载安装等信息. https://www.postgresql.org/download/linux/redhat/ image.pn ...
- fastq 转换为 fasta
使用 awk awk '{if(NR%4 == 1){print ">" substr($0, 2)}}{if(NR%4 == 2){print}}' XXX.fastq & ...
- ICEM-带孔小板
原版视频下载地址:https://pan.baidu.com/s/1jHMvXHG 密码: p93q
- 【软工实践】Beta冲刺(5/5)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 将数据分析以可视化形式展示出来 新增数据分析展示等功能API 服务器后端部署, ...
- RocketMQ官方启动脚本不支持jdk11的修改
以rocketmq4.5.0为例 主要涉及classpath和启动配置. nameserver: vim /opt/rocketmq/bin/runserver.sh 删除 -XX:+UseConcM ...