博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH原理和使用
阅读量:5295 次
发布时间:2019-06-14

本文共 1399 字,大约阅读时间需要 4 分钟。

在Linux上工作,ssh是必须要了解的技术方法。它可以建立起多台主机之间的安全的加密传输,以进行远程的访问、操控、传输数据。

ssh是什么?

SSH為Secure Shell的縮寫。為建立在应用层和传输层基础上的安全协议。

传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。 而SSH是目前较可靠,專为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。透過SSH可以對所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。 SSH之另一項優點為其传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的「通道」。 了解这么多就好了,其实ssh连接也就是可以理解成经过加密的远程访问啦。

ssh连接的验证、加密方式

ssh连接是CS模型(客户端-服务器),客户端发出连接申请,服务器对客户端进行验证,再考虑是否接受连接申请。

ssh的安全加密方式的理论基础是非对称加密体系。而非对称加密中,常见的一种就是RSA加密算法。在使用ssh,务必先弄清楚非对称加密和rsa的算法流程。详情参见。

ssh有两种级别的安全验证:账户口令验证、rsa加密验证。详细参数,可以在sshd_config配置文件中设置(是/etc/ssh/sshd_config,mac下是/etc/sshd_config)

账号口令验证

直接输入所要登陆的用户的口令是默认的方式。不需要修改配置文件。

如果直接从客户端将用户密码传输到服务器,那么密码信息很容易被中间人截获,从而实现重放攻击。ssh的实现方式是:

   1.客户端向ssh服务器发出请求,服务器将自己的公钥返回给客户端;

   2.客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器;

   3.服务器接收到客户端传送的密码,用自己的私钥解码,如果结果正确,则同意登录,建立起连接。

这种方式还是有漏洞的,中间人可以假扮成服务器,骗取客户端的密码。

RSA加密验证

RSA加密验证方式,充分利用了非对称加密体系的优势,不需要在网络传输密码,完全杜绝了中间人攻击的可能。步骤如下:

   准备工作:

   1.客户端先使用 ssh-keygen 命令,生成私钥和公钥。按照默认配置,私钥会被保存在~/.ssh/id_rsa中,公钥则在~/.ssh/id_rsa.pub中。(一般别修改这里的文件)

   2.客户端通过安全的方式将公钥发送给服务器。在服务器端,将客户端发的公钥写入到~/.ssh/authorized_keys文件末尾。

   建立连接

   1.客户端发出申请。服务器产生session密钥对,返回通过对应客户端的公钥加密后的session公钥。

   2.客户端用自己的密钥解密信息,得到session公钥。

   3.之后的数据交互,都通过对方方公钥加密,对方收到信息后,用其私钥解密,实现安全加密过程。

 

转载于:https://www.cnblogs.com/tianlai/p/3817956.html

你可能感兴趣的文章
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
VSCODE更改文件时,提示:EACCES: permission denied的解决办法(mac电脑系统)
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
Pycharm安装Markdown插件
查看>>
【转】redo与undo
查看>>
C#更新程序设计
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>
研磨JavaScript系列(五):奇妙的对象
查看>>
面试题2
查看>>
selenium+java iframe定位
查看>>