SSH 免密码登录
背景说明
SSH 登录有两种方式:
- 密码登录
- 密钥登录
SSH 中常常使用两种算法 RSA 与 Ed25519 ,以前存在其它算法,但是被正式证明不安全,现在普遍都是这两种算法。
Ed25519 是一种椭圆曲线加密算法,具有较高的安全性和效率,并且比 RSA 更安全些,以下使用 Ed25519 算法生成密钥对,以实现 SSH 免密码登录。
生成密钥对
1 |
|
输入以上命令后,会提示是否为密钥进行加密,直接 Enter 就是不对密钥进行加密。
然后在当前路径下,便会存在与之相关的两个文件
- id_ssh : 私钥
- id_ssh.pub : 公钥
向当前用户添加公钥
将公钥复制到用户根目录下的 .ssh/authorized_keys 文件中。
1 |
|
修改 sshd 配置
1 |
|
将 PasswordAuthentication 修改为 no,PubkeyAuthentication 修改为 yes
上图参数说明:
- PermitRootLogin:是否允许 root 用户通过 SSH 登录。
- PasswordAuthentication:是否允许使用密码进行 SSH 登录。
- UseDNS:是否在 SSH 登录过程中使用 DNS 解析。
- RSAAuthentication:是否允许使用 RSA 密钥进行 SSH 登录。
- PubkeyAuthentication:是否允许使用公钥进行 SSH 登录。
注意事项
如果关闭 UseDNS 将无法使用域名进行登录服务器。
.ssh 文件夹的权限为:700
authorized_keys 文件权限为:600
1
2chmod 700 .ssh
chmod 600 authorized_keys