SSH密钥登陆过程
- 客户端通过
ssh-keygen
生成自己的公钥和私钥。 - 手动将客户端的公钥放入远程服务器的指定位置。
- 客户端向服务器发起 SSH 登录的请求。
- 服务器收到用户 SSH 登录的请求,发送一些随机数据给用户,要求用户证明自己的身份。
- 客户端收到服务器发来的数据,使用私钥对数据进行签名,然后再发还给服务器。
- 服务器收到客户端发来的加密签名后,使用对应的公钥解密,然后跟原始数据比较。如果一致,就允许用户登录。
在服务器中配置远程用户公钥(即客户端需要将自己的公钥配置在Linux服务器中)
-
查看本地是否已经生成了公钥
ls ~/.ssh/id_*.pub
-
客户端生成本地公钥
ssh-keygen
-
将客户端公钥手动上传到Linux服务器中
ssh-copy-id 用户名@服务器IP地址
ssh-copy-id
命令用于将本地用户的公钥添加到远程服务器的~/.ssh/authorized_keys
文件中,从而实现 SSH 免密码登录。这样,您就可以通过私钥和公钥的方式进行身份验证,而无需输入密码。- 如果该文件不存在,它会自动创建该文件并将公钥添加到其中。