知其然,更要知其所以然
大家都知道 ssh 命令,是用于远程登陆的,使用用户名密码或公钥进行认证。
如命令
ssh user@host
输入用户名密码,即可在客户端使用 user 登陆远程 host 主机。
当然也可以实现免密码登陆:
在客户端用执行
ssh-keygen
然后一直确认,将会生成公钥,存放在 /home/xxx/.ssh/id_rsa.pub 中,将
id_rsa.pub 中的公钥字符串复制到 host 主机下 user 的家目录的 authorized_keys 文件中,即 /home/user/.ssh/authorized_keys 中即可实现免密码登陆。
百度百科介绍:SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。那么以上两种认证方式它是如何确保是安全通信的呢?
安全的通信离当然不开加密解密,SSH 也不例外,它使用的是对称加密算法和非对称加密算法的结合。那么,具体是如何使用加密算法的呢?
当客户端第一次登陆服务器时会有以下提示
(pyenv) aaron@ubuntu:~$ s