1 背景需求。使用ssh命令登录远程服务器时,需要输入口令。常常输入口令就不那么方便了,甚至输入法还会记录你的高频输入串,带来一些不安全的隐患。所以,用户可能需要免密登录。
2 原理。所谓免密登录,我理解的是,客户端生成公私钥对,将公钥上传到服务端;需要远程登录时,客户端将私钥加密的信息发送到服务端;服务端使用公钥解密验证用户的身份,判断是否放行。
3 方法
(1) 客户端需要使用到ssh-keygen -t rsa 命令生成公私钥对。如果找不到该命令,Ubuntu系统可以通过apt install sshpass安装。默认情况下,该命令会在~/.ssh/目录下生成存放私钥的文件id_rsa和存放公钥的文件id_rsa.pub。
(2) 接着将id_rsa.pub中的串追加到服务器端~/.ssh/authorized_keys文件中即可实现免密登录。
4 其他使用场景
当使用github、gitee管理私库时,push代码时需要输入账密,这时,将自己的公钥放到代码托管平台上,也可以免密push、pull。



