SSH连接服务器及对称与非对称加密

       近期在自己的服务器上面搭建git仓库,以便于自己在本地写代码上传到服务器上面方便。在配置git的时候遇到了一些问题,在解决的过程中让我深刻的了解了linux的ssh链接问题。下面我就说说自己的对SSH连接的理解。

一、SSH文件的权限问题

       由于自己配置git之后利用ssh链接不到远程仓库,一直提示没有授权的问题。我一气之下将Linux下的/.ssh文件夹以及文件夹下面的authorized_keys文件的权限都改为777了。笑话也就在这开始了......重启之后服务器给了我一个惊喜,通过SSH链接不到服务器了。通过这个坑让我懂得了Linux里面的文件权限不能瞎改,后来经过一番折腾之后终于弄好了。我们应该吧~/.ssh文件夹和下面的authorized_keys文件的权限设置为644。

chomd  644 authorized_keys

二、SSH的链接

       大家都知道通过SSH链接Linux需要秘钥这个东西,下面我们说说他是怎样建立连接的。当我们想不予要密码链接我们的远端服务器,那么我们就应该在客户端生成一个由RSA生成的密钥对(我使用Xshell生成的)。在生成两个秘钥中,一个是用来加密的公钥,一个是用来解密的私钥。这里我们说一下SSH链接的过程。

       1.先将Client生成公钥添加到remotehost中的~/.ssh/authorized文件中。

       2.建立远程链接,将client的公钥发送给remotehost,remotehost在~/.ssh/authorized文件中寻找你的公钥进行匹配,当匹配成功后,remotehost生成一个用公钥加密的随机数并将这个随机数发送给Client。

       3.Client接收到公钥加密的随机数后,利用自己的相匹配的私钥进行解密。(如果你在生成密钥时给密钥加了密码,你需要在选择密钥解密时输入密码)解密成功后将解密后的随机数返回给remotehost,这时remotehost进行判断是否与自己生成的随机数相同,如果相同链接建立成功。

三、对称加密与非对称加密

       之前说的RSA加密是非对称加密,下面我们说说对称加密和非对称加密怎么区分。
       对称加密:这种加密方法只有一把公钥,称之为共享密钥加密。也就是加密和解密都是共同用一把密钥进行的。这种在通信过程中怎样将密钥安全的发送到对方那边是个很困难的问题。如果你的通信被劫持了,那么你的密钥也就会被他人所获取。
       非对称加密:这种加密技术相比对称加密安全得多。因为这种机密机制是用公钥进行加密,用私钥进行解密。公钥可以随意跟他人。
       使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。
       另外,要想根据密文和公开密钥,恢复到信息原文是异常困难的,因为解密过程就是在对离散对数进行 求值,这并非轻而易举就能办到。退一步讲,如果能对一个非常大的整数做到快速地因式分解,那么密 码破解还是存在希望的。但就目前的技术来看是不太现实的。

你可能感兴趣的:(SSH连接服务器及对称与非对称加密)