一 ssh协议
SSH(Secure Shell)是一种网络协议,主要用于在不安全的网络上安全地进行远程登录和数据传输。SSH通过加密通信通道来保护敏感数据的机密性和完整性,从而提供了一种安全的方式来访问远程服务器。
二 SSH的安全机制
SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。
传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。
但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:
第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。
第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge,应该是一段文字,因为是用客户端公钥加密的,所以只能用客户端私钥进行解密)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录(客户端解密出的文字和服务端原始文字相同,即证明我是我)。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。
三 网络安全
网络上存在着各种黑客和攻击者,他们可能会尝试扫描和利用SSH登录的漏洞来攻击远程服务器。每天都要成千上万的黑客对着开放在外网的服务器进行扫描,尤其是ssh端口,如果因管理人员的疏漏密码复杂度不够,很快就会被攻破。
四 相对安全的ssh登录方式
两步验证 双因子认证是目前比较常见的作法,但是身处国内同时需要手机下载google的身份验证app加上网络不畅经常出现问题,或者一些政企严禁使用,那还有更合理的工具没呢?
答案是有啊,近期经过测试自行编写了一套ssh密码加消息验证码的方式完美解决了这个问题。
感兴趣的可以联系,为你配置和设置验证机制,实现ssh密码+验证码方式的安全登录机制。
需要的朋友请记得留言