SSH原理和使用

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

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模型(客户端-服务器),客户端发出链接申请,服务器对客户端进行验证,再考虑是否接受链接申请。session

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

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

帐号口令验证ip

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

若是直接从客户端将用户密码传输到服务器,那么密码信息很容易被中间人截获,从而实现重放攻击。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.以后的数据交互,都经过对方方公钥加密,对方收到信息后,用其私钥解密,实现安全加密过程。

相关文章
相关标签/搜索