SSH是一种网络协议,用于计算机之间的加密登录。

SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。这里介绍的是openSSH,它是自由软件,应用非常广泛。

如果要在windows系统中使用SSH,会用到另一种软件PuTTY,我们后面用到的Git客户也集成了SSH。

1、格式:ssh user@host

user代表真实存在的用户,host代表要登录的远程计算机。打开bash,输入ssh user@host,host为远程计算机的ip地址,用户计算机的“用户/.ssh”文件夹里就会接收到远程计算机传递过来的公钥,输入完ssh user@host之后回车,按照提示输入密码,就会把密码加密登录到远程计算机上。

常见有两种加密技术,分别是对称性加密和非对称性加密,SSH属于后者。对称加密算法在加密和解密时使用的是同一个密钥;而非对称性加密算法需要两个密钥来进行加密和解密,这两个密钥分别是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

2、工作原理

公钥和私钥是成对出现,可以通过ssh-keygen-t rsa来创建,既可以通过密钥来加密数据,也可以通过私钥来加密数据,如果是以公钥进行的数据加密,只能与之对应的私钥才可以解密,相反如果以私钥进行的数据加密,则只能与之对应的公钥才可以将数据进行解密,这样就可以提高信息传递的安全性。

3、免密码登录

我们可以将本地计算机上的公钥保存到特定的远程计算机上,这样当我们再次访问这台远程计算机时就可以实现免密码登录了。

4、对称性加密图解



ssh公钥是对称加密吗 ssh 公钥格式_ssh公钥是对称加密吗


5、非对称性加密图解


ssh公钥是对称加密吗 ssh 公钥格式_ssh公钥是对称加密吗_02


相对于对称性加密更安全一些,第一次登录服务器的时候,服务器把公钥传递过来,本地计算机进行存储,下次传递数据的时候将会用该公钥进行加密,就是过程中该数据以及公钥被拦截,但是只要服务器与公钥对应的私钥才能解密该数据。