SSH原理和使用

在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的算法流程。详情参见RSA加密算法

ssh有两种级别的安全验证:账户口令验证、rsa加密验证。详细参数,可以在sshd_config配置文件中设置(Ubuntu是/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.之后的数据交互,都通过对方方公钥加密,对方收到信息后,用其私钥解密,实现安全加密过程。

SSH原理和使用

时间: 2024-11-13 19:30:26

SSH原理和使用的相关文章

SSH原理与运用(二):远程操作与端口转发

本问转载自  http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html SSH原理与运用(二):远程操作与端口转发 作者: 阮一峰 日期: 2011年12月23日 接着前一次的文章,继续介绍SSH的用法. ======================================= 作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行

SSH原理与应用(一):远程登录

转载自http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html SSH原理与应用(一):远程登录 作者: 阮一峰 日期: 2011年12月21日 SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于很多场合.有些事情,没有它就是办不成.本文是我的学习笔记,总结和解释了SSH的常见用法,希

Open SSH原理

OpenSSH(免费的 SSH 的实现)类似于 telnet 或rsh,ssh 客户程序也可以用于登录到远程机器.所要求的只是该远程机器正在运行 sshd,即 ssh 服务器进程.但是,与 telnet 不同的是,ssh 协议非常安全.加密数据流,确保数据流的完整性,甚至安全可靠的进行认证它都使用了专门的算法. SSH原理 1.服务器建立公钥每一次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host* 的文件.系统刚刚安装完成时,由于没有这些公钥,sshd会主动去计算出这些需要

SSH原理与运用一:远程登录(转)

原文:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 作者: 阮一峰 SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于很多场合.有些事情,没有它就是办不成.本文是我的学习笔记,总结和解释了SSH的常见用法,希望对大家有用. 虽然本文内容只涉及初级应用,较为简单,但是需要读者

ssh原理

SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于很多场合.有些事情,没有它就是办不成.本文是我的学习笔记,总结和解释了SSH的常见用法,希望对大家有用. 虽然本文内容只涉及初级应用,较为简单,但是需要读者具备最基本的"Shell知识"和了解"公钥加密"的概念.如果你对它们不熟悉,我推荐先阅读<UNIX / Li

SSH原理与运用(一):远程登录(转)

SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于很多场合.有些事情,没有它就是办不成.本文是我的学习笔记,总结和解释了SSH的常见用法,希望对大家有用. 虽然本文内容只涉及初级应用,较为简单,但是需要读者具备最基本的"Shell知识"和了解"公钥加密"的概念.如果你对它们不熟悉,我推荐先阅读<UNIX / Li

SSH原理与运用(一)和(二):远程登录 RSA算法原理(一)和(二)

SSH原理与运用(一)和(二):远程登录  RSA算法原理(一)和(二) http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html RSA算法原理(一) http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html RSA算法原理(二)

linux操作系统-SSH原理介绍与免密运用与远程命令操作

PS:运用好SSH,对管理众多服务器可以带来极大的便利.当我们从一台服务器访问另一台服务器,我们可以输入密码访问,并不影响效率.但是当我们需要访问多台服务器,或者几十上百台的时候就有点麻烦了.或者对几十上百台服务器做一些批量升级,修改配置等操作,如果需要逐台密码校验或逐台登录操作将非常费时.可以考虑ssh免密加ssh远程执行命令对目标主机群进程操作. SSH原理与运用 一.什么是SSH 简单的说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台

ssh原理图解

SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式.在此之前,远程登录一般常用FTP和Telnet,但是它们以明文的形式在网络中传输账户和密码,因此很不安全,很容易受到黑客发起的中间人攻击. SSH工作原理 对数据加密的方式有两种: 对称加密(密钥加密) 非对称加密(公钥加密) 对称加密就是加密解密共用一套密钥,如图: 对称加密加密强度高,但是由于由于Client端众多,很难以保证密钥绝对安全不被泄露. 为了解决此问题,非对称加密