SSH基本原理和免密码登录

SSH基本原理和免密码登录

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。

从客户端来看,SSH提供两种级别的安全验证:

第一种级别是基于口令的安全验证

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。这个过程如下:

(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。这种方式可能会有别的服务器在冒充真正的服务器,将公钥发送给客户端,客户端就会将密码加密后发送给冒充的服务器,冒充的服务器就可以拿自己的私钥获取到密码,也就是受到“中间人”这种方式的攻击。

值得一说的是当第一次链接远程主机时,会提示您当前主机的”公钥指纹”,询问您是否继续,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到~/.ssh/known_hosts文件中。

第二种级别是基于密匙的安全验证

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒,但是相比输入密码的方式来说10秒也不长。

那么如何生成自己的一对密钥呢?打开终端执行ssh-keygen,该命令会在~/.ssh/目录下创建id_rsa、id_rsa.pub两个文件,分别为您的公钥和私钥。

将公钥拷贝到服务器的~/.ssh/authorized_keys文件中就可以了。拷贝方法有如下几种:

  1. 将公钥通过scp拷贝到服务器上,然后追加到~/.ssh/authorized_keys文件中,这种方式比较麻烦。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/。
  2. 通过ssh-copyid程序,ssh-copyid user@host即可,但是这种方式不支持更改端口号(我没找到)。该程序ubuntu系统自带无需安装,其实该程序为一个脚本。
  3. 可以通过cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’,这个也是我比较常用的方法,因为可以更改端口号。

当然还有其他的一些我不知道的方法,只要好用就是好方法。

测试

如果你有远程的linux服务器,可以自己尝试一下,如果没有也没关系,可以尝试登录自己的电脑,执行:ssh localhost。当然如果你没有搭建服务器的话会提示错误,执行sudo apt-get install openssh-server安装一个ssh-server,然后就可以使用ssh进行登录了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

poj2442Sequence(优先队列)

http://poj.org/problem?id2442 题解http://www.cnblogs.com/372465774y/archive/2012/07/09/2583866.html 本来写的二维数组 &#xff0c;直接対一维排序 不知道为嘛一直WA 只好该为一维的 就AC了 View Code 1 #include <iostream>2 #include<cstdio>3 #includ…

ExtJS 4.0

基本组件&#xff1a; xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton 带下拉选项菜单的按钮 buttongroup Ext.ButtonGroup 编组…

967c语言程序设计是什么,2018年湖南师范大学数学与计算机科学院967C语言程序设计和数据结构[专硕]之C程序设计考研核心题库...

一、选择题1&#xff0e; 设有以下函数&#xff1a;则下面对函数指针的定义和赋值均是正确的是( )。A.B.C. D. 【答案】D【解析】函数指针的一般定义形式为&#xff1a;数据类型(*指针变量名)( )。定义函数指针时&#xff0c;对应的类型名以及 返回值类型都要和对应函数的参数列…

System.Text.Json 中的字符编码

System.Text.Json 中的字符编码Intro默认的 System.Text.Json 序列化的时候会把所有的非 ASCII 的字符进行转义&#xff0c;这就会导致很多时候我们的一些非 ASCII 的字符就会变成 \uxxxx 这样的形式&#xff0c;很多场景下并不太友好&#xff0c;我们可以配置字符编码来解决被…

maven3安装和使用笔记

2019独角兽企业重金招聘Python工程师标准>>> 1、下载 http://maven.apache.org/download.cgi 2、解压 3、配置环境变量 M2_HOME D:\program\apache-maven-3.3.3 Path : %M2_HOME%\bin 4、验证是否成功 打开命令行窗口&#xff0c;输入mvn -version&#xff0c;显示…

数学,原来可以这么美!

全世界只有3.14 % 的人关注了爆炸吧知识法国著名艺术家罗丹曾说&#xff1a;世界中从不缺少美&#xff0c;而是缺少发现美的眼睛。对于我们的眼睛&#xff0c;不是缺少美&#xff0c;而是缺少发现。在艺术者眼中&#xff0c;一切都是美的&#xff0c;因为他锐利的慧眼&#xff…

Hadoop的伪分布安装 hadoop的核心思想

Hadoop的伪分布安装hadoop的安装分为本地模式、伪分布模式、集群模式。本地模式是运行在本地&#xff0c;只负责存储&#xff0c;没有计算功能&#xff0c;本书不讲述。伪分布模式是在一台机器上模拟分布式部署&#xff0c;方便学习和调试。集群模式是在多个机器上配置hadoop&a…

jQuery获取及设置单选框,多选框,文本框内容

在工作中,text,radio,checkbox,select在开发过程中是必不可少的一部分.在开发过程中经常要处理页面表单元素. Eg: 在复选框checkBox中获取checked的value值,来触发和调用其它页面表单元素,制作互动性更强更友好的用户体验. jQuery通过元素$(#id)产生一个object对象,通过对获…

js局部打印

因为需要用到这个东西&#xff0c;所以很无耻的拾人牙慧&#xff0c;收在博客里了~ ?<!DOCTYPE html><html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>无标题文档</title>&l…

c语言出勤成绩,C语言课程设计学生考勤系统文档推荐 (10页)-原创力文档

C语言程序设计课程设计报告设计题目&#xff1a; 学生考勤系统设计专 业 微电子科学与工程班 级 微电 131学 生 赵 杨 怡指导教师年 学期设计任务&#xff1a; C 语言课程设计任务书 10题目&#xff1a;学生考勤系统设计功能&#xff1a;学生考勤系统应包含各班学生的全部信息。…

lambda与内置函数

2019独角兽企业重金招聘Python工程师标准>>> 学习条件运算时&#xff0c;对于简单的 if else 语句&#xff0c;可以使用三元运算来表示&#xff0c;即 # 普通条件语句 if 1 1:name eddy else:name yys# 三元运算 name eddy if 1 1 else yys lambda表达式 # ###…

年仅21岁,干掉6位诺贝尔奖得主,被誉为科学界最强杀手,却惨被人骂成一个笑话...

全世界只有3.14 % 的人关注了爆炸吧知识在刚过去的国庆假期期间&#xff0c;超模君总是在不经意间看到许多诡异的小视频&#xff01;而一提起充满诡异气息的视频&#xff0c;《走近科学》这档节目堪称经典&#xff01;然而在去年&#xff0c;经典科普电视节目《走近科学》迎来最…

vsftpd使用方法小结、Linux安装JDK出现“NoClassDefFoundError: /Object”的解决方案、ubuntu 12.04安装jdk

vsftpd使用方法小结vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字&#xff0c;它可以运行在诸如 Linux, BSD, Solaris,HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。比如&#xff1a; 非常高的安全性需求带宽限制良好的可伸缩性创建虚拟用户的可能性…

从函数中返回多个值的方法

There are several ways to return multiple values from functions. In this topic, we’re going to look over the 5 most common techniques to pass 2 or more values from functions. The 5 techniques are: 1、Returning variables in Global scope 2、Returning a Coll…

python 字典操作

假设字典为dics {0:a, 1:b, c:3} 1.从字典中取值&#xff0c;当键不存在时不想处理异常 [方法] dics.get(key, not found) [例如] [解释] 当键key不存在是&#xff0c;打印not found(即想要处理的信息)&#xff0c;当存在是输出键值。 【其他解决方案一】 if key in dics: …

Web实时通信,SignalR真香,不用愁了

前言对于B/S模式的项目&#xff0c;基础的场景都是客户端发起请求&#xff0c;服务端返回响应结果就结束了一次连接&#xff1b;但在很多实际应用场景中&#xff0c;这种简单的请求和响应模式就显得很吃力&#xff0c;比如消息通知、监控看板信息自动刷新等实时通信场景&#x…

四位数码管树莓派c语言,用树莓派和四位数码管模块做一个时钟

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;预备知识如图&#xff0c;这是一个4位数码管模块&#xff0c;由两片 74HC595 级联控制&#xff0c;引脚如图&#xff0c;从上到下&#xff0c;分别为VCC(3.3V/5V),…

这5部不容错过的超高评价纪录片,带你领略地球的魅力!

全世界只有3.14 % 的人关注了爆炸吧知识地球是茫茫宇宙星系中唯一生机勃勃万物生存的星球&#xff0c;它是瞬息万变、充满自然奇观的世界。50多亿年来&#xff0c;地球在日复一日、沧海桑田地变化着。今天就给大家带来最顶尖的BBC地球科普纪录片&#xff0c;最盛大的听觉盛宴&a…

【转】Android 带checkbox的listView 实现多选,全选,反选 -- 不错

原文网址&#xff1a;http://blog.csdn.net/onlyonecoder/article/details/8687811 Demo地址&#xff08;0分资源&#xff09;&#xff1a;http://download.csdn.net/detail/onlyonecoder/5154352 由于listview的一些特性&#xff0c;刚开始写这种需求的功能的时候都会碰到一些…

第三方QQ、微博登陆

一定要把token uid 这些参数搞明白是干什么的 第一种方法是转的 &#xff08;通过javascript来调用&#xff09; 最近接触了一些第三方登陆的东西&#xff0c;弄的真是一个头&#xff0c;两个大>.< 今天&#xff0c;终于把腾讯第三方登陆调试通了&#xff0c;做一…