SSH known_hosts / authorized_keys 的解释
参考: http://blog.sina.com.cn/s/blog_148a693f10102vj8m.html
什么是SSH?
简单说,SSH是一种网络协议,用于计算机之间的加密登录。
如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。
中间人攻击
SSH之所以能够保证安全,原因在于它采用了公钥加密。
整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。这种风险就是著名的"中间人攻击"(Man-in-the-middle attack)。
SSH协议是如何应对的呢?
公钥检查
如果你是第一次登录对方主机,系统会出现下面的提示:
$ ssh user@hostThe authenticity of host 'host (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)?
这段话的意思是,无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?
所谓"公钥指纹",是指公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是98:2e:d7:e0
SSH known_hosts / authorized_keys 的解释相关推荐
- scp传文件时报错Add correct host key in /root/.ssh/known_hosts to get rid of this message
在两个服务器之间用scp命令传文件时报错 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOT ...
- Please contact your system administrator. Add correct host key in /Users/***/.ssh/known_hosts
Please contact your system administrator. Add correct host key in /Users/***/.ssh/known_hosts macOS系 ...
- ssh远程出错Add correct host key in /home/xxx/.ssh/known_hosts to get rid of this message
ssh远程出错 scp 远程复制文件出错 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE H ...
- ubuntu ssh Host key verification failed,Host 10.xxx.xxx.xxx not found in /home/user/.ssh/known_hosts
$ sudo apt-get install sshpass $ sudo bash scp_models_toxxx.sh 用ssh脚本传文件时报错 报错截取: ECDSA host key for ...
- Please contact your system administrator. Add correct host key in /Users/*********/.ssh/known_hosts
Please contact your system administrator. Add correct host key in /Users/***/.ssh/known_hosts macOS系 ...
- ssh:使用ssh链接服务器的时候报错 Add correct host key in /root/.ssh/known_hosts to get rid of this message
今天在公司内网登陆阿里云服务器的时候,执行ssh报错,提示 Add correct host key in /root/.ssh/known_hosts to get rid of this mes ...
- ssh 配置了,但git clone失败了,hostkeys_find_by_key_hostfile: hostkeys file /Users/XX/.ssh/known_hosts
今天Gitlab上配置了 项目 git clone ssh 无法拉代码,换成git clone http的可以 ssh -vvvT git@XXX.XX 发现提示hostkeys_find_by_ke ...
- /root/.ssh/known_hosts [SSH] No Known Hosts file was found at /root/.ssh/known_hosts. Please ensure
Jenkins配置节点报错 SSHLauncher{host='192.168.111.129', port=22, credentialsId='aa9fc1b1-ccc2-470f-a612-f2 ...
- Add correct host key in C:\\Users\\xxx/.ssh/known_hosts to get rid of this message.
一.问题描述 云服务器ECS的系统从windows 10(操作系统) 换成CentOS(操作系统)的时候,在本地主机的windows 10 控制台Windows PowerShell用 ssh 连接到 ...
- centos升级openssh之后,连接报错Add correct host key in /root/.ssh/known_hosts to get rid of this message
报错提示 Add correct host key in /root/.ssh/known_hosts to get rid of this message 解决办法: rm ~/.ssh/known ...
最新文章
- [WPF]WPF中材质制作——图片和矢量图之争
- python按章节分割txt_python爬虫,爬取小说
- 亲身体验后,为你安利 3 个远程桌面控制软件~
- mysql select查询语句_mysql的select查询语句
- 全国计算机等级考试题库二级C操作题100套(第100套)
- 探秘 Dubbo 的度量统计基础设施 - Dubbo Metrics
- Java快速入门学习笔记8 | Java语言中的数组
- python 函数中的面试题
- 求一个任意实数c的算术平方根g_中考总复习实数知识点
- 【转】认识 C++ 中的 explicit 关键字
- android+ndk+libevent,android ndk 编译 libevent
- java使用tar算法压缩解压缩文件、数据流、byte[]字节数组
- python max((1、2、3)*2)_【Python】python基础2(2)
- java des 加密 js 解密_js 实现DES加密解密
- Jarvis_Web 刷题记录_Bellone北洛
- 第一次参加pub的地面聚会
- 计算机掷骰子吗?关于随机数的一些细节
- HTML点击图片,弹窗并放大
- Elasticsearch 查询时 判断不为null或不为空字符串
- python进程池multiprocessing.Pool和线程池multiprocessing.dummy.Pool实例