SSH登录详解
1.什么是SSH登录
SSH是一种网络协议,用于计算机之间的加密登录。
相比传统的账户密码登录,SSH提供了一种更便捷安全的登录方式。
2.SSH登录流程
登录操作如下

ssh user@host
SSH之所以能保证安全,是因为它采用了公钥加密。
整个流程如下:
(1)远程主机收到用户的登录请求,将自己的公钥发给用户
(2)用户使用这个公钥,将登录密码加密后,发送给远程主机
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录
3.中间人攻击
SSH登录本身是安全的,问题在于,如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,
那么用户很难辨别真伪。因为不像https,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
攻击者插在用户和远程主机之间,用伪造公钥,获取到用户的登录面后,再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了,
这就是著名的“中间人攻击”
4.口令登录-公钥加密(用户端),私钥解密(远程主机)
如上图所示,第一次登录时,会提示用户
The authenticity of host '121.43.230.217 (121.43.230.217)' can't be established.
ECDSA key fingerprint is SHA256:NfXOYhYDaY7cs57XoMqAS+5D+rG8mKTumqyo+8SCO9o.
Are you sure you want to continue connecting (yes/no)?
意思是无法验证用户的公钥,是否正确,询问用户是否要继续。
ECDSA key给出了远程主机公钥的SHA256编码过的值,一般在远程主机的网站会告示公钥的值,
用户可以将这个公钥和网站上的公钥进行比对,正确则表明是远程主机。
输入yes之后,系统会将公钥加入到已知的主机列表,如下所示,已知列表中的主机,下次不会再询问。
Warning: Permanently added '121.43.230.217' (ECDSA) to the list of known hosts.
5.公钥登录-私钥加密(用户端),公钥解密(远程主机)
使用密码登录,每次都必须输入密码,非常麻烦,好在SSH还提供了公钥登录,可以省去输入密码的步骤。
公钥登录的流程如下:
用户将自己的公钥放在远程主机上,登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。
远程主机用实现储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
这种方式要求用户提供自己的公钥,如果没有,可以使用ssh-keygen生成一个:
ssh-keygen
运行之后,会在/root/.ssh/目录下,分别生成公钥和私钥:id_rsa.pub和id_rsa
输入以下命令,将公钥传送到远程主机,公钥会添加到远程主机/root/.ssh/authorized_keys文件中,公钥登录的设置就完成了。
ssh-copy-id user@host
SSH登录详解的更多相关文章
- linux ssh使用深度解析(key登录详解)
linux ssh使用深度解析(key登录详解) SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task ...
- SSH免密登录详解
SSH免密登录详解 SSH(Security Shell)安全外壳协议,是较为可靠的,专为远程登录会话和其他网络服务提供安全保证的协议. 对于传统的网络服务程序(例如,FTP,Telnet等)来说 ...
- 【转】SSH服务详解
[转]SSH服务详解 第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Gro ...
- SSH命令详解2
ssh命令详解 目录 前言 一.ssh命令 1.Ssh参数解释 2.如何连接远程主机 3.利用Xstart 在windo ...
- (转)SSH服务详解
SSH服务详解 原文:http://www.cnblogs.com/clsn/p/7711494.html 第1章 SSH服务1.1 SSH服务协议说明SSH 是 Secure Shell Proto ...
- Bmob第三方登录详解
Bmob第三方登录详解 Bmob 第三方登录 简介 本文主要介绍新浪微博,QQ,微信的登录接入以及如何配合BmobSDK中的第三方登录功能实现第三方登录. 在使用之前请先按照快速入门创建好可以调用Bm ...
- ssh配置详解及公私钥批量分发
第一:ssh配置文件详解 第二:ssh公私密钥的生成 第三:ssh公钥分发之一:ssh自带工具ssh-copy-id工具分发 第四:ssh公钥分发之二:编写sshpass脚本批量分发 第五:ssh公钥 ...
- python通过socket实现多个连接并实现ssh功能详解
python通过socket实现多个连接并实现ssh功能详解 一.前言 上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户 ...
- 前后端分离,简单JWT登录详解
前后端分离,简单JWT登录详解 目录 前后端分离,简单JWT登录详解 JWT登录流程 1. 用户认证处理 2. 前端登录 3. 前端请求处理 4. 后端请求处理 5. 前端页面跳转处理 6. 退出登录 ...
随机推荐
- 数学之路-python计算实战(9)-机器视觉-图像插值仿射
插值 Python: cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst interpolation – interpol ...
- Java线程(十一):Fork/Join-Java并行计算框架
并行计算在处处都有大数据的今天已经不是一个新奇的词汇了.如今已经有单机多核甚至多机集群并行计算.注意,这里说的是并行,而不是并发.严格的将,并行是指系统内有多个任务同一时候运行,而并发是指系统内有多个 ...
- HBase Go客户端Row构造注意事项
1. Hbase 的Go客户端语言使用方法 2. Hbase的Row使用注意事项 2.1. Row的前几个字段尽量散列 2.2. Row的排序是把所有Row中的字符做字典排序 我们最近在一个项目中使用 ...
- Struts2常见配置(草稿)
Struts2框架配置文件加载的顺序(了解加载配置文件的顺序,重点掌握struts.xml配置文件) 1.Struts2框架的核心是StrutsPrepareAndExecuteFilter过滤器,该 ...
- 进阶之路(基础篇) - 005 模拟PWM波控制引脚
/********************************* 代码功能:输出PWM波控制引脚 使用函数: 创作时间:2016*10*07 作者邮箱:jikexianfeng@outlook.c ...
- HDU 2227 Find the nondecreasing subsequences (数状数组)
Find the nondecreasing subsequences Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/3 ...
- CheckStyle检查规则中文翻译
本文主要介绍CheckStyle 的各个规则配置项目,这个版本的CheckStyle将样式规则分为了以下十六种类型共138条规则: 官方文档地址:http://checkstyle.sourcefor ...
- mosquitto 配置文件解说
#配置文件为mosquitto #参见mosquitto.conf(5)了解更多信息. #显示默认值,取消注释以更改. #使用#字符来表示注释,但只有当它是 #第一个字符就行了. #========= ...
- Android App优化之ANR详解
引言 背景:Android App优化, 要怎么做? Android App优化之性能分析工具 Android App优化之提升你的App启动速度之理论基础 Android App优化之提升你的App ...
- 【转】标准C++类std::string的内存共享和Copy-On-Write技术
1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功 ...