Ubuntu 配置 SSH 秘钥登录

2024-05-08 10:55:38 浏览数 (17)

为了确保安全,一般情况下,我们在自己的机器上不会选择使用密码登录,必要时还会关闭 root 账户的 ssh 登录功能

生成 SSH 秘钥对

先使用 ssh-keygen 创建一个密钥对

如果对安全性有更高的追求,推荐使用椭圆曲线算法来生成密钥对

代码语言:javascript复制
ubuntu@ubuntu:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): 
Created directory '/home/ubuntu/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa. 
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub. 

预期应生成两个文件 id_rsaid_rsa.pub

部署 SSH 公钥

将公钥添加进 ~/.ssh/authorized_keys 文件中

代码语言:javascript复制
ubuntu@ubuntu:~/.ssh$ cat ./id_rsa >> ./authorized_keys

重启 SSH 服务,尝试使用秘钥进行连接

代码语言:javascript复制
sudo service sshd restart

修改 SSH 配置文件

修改 /etc/ssh/sshd_config 文件,让登录的过程更加安全

先备份

代码语言:javascript复制
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

在文件中添加或修改

代码语言:javascript复制
# 启用 RSA 认证
RSAAuthentication yes

# 启用公钥认证
PubkeyAuthentication yes

# 配置 ROOT 登录(二选一)
# PermitRootLogin no # 禁用 ROOT 登录
PermitRootLogin without-password # 禁用 ROOT 密码登录

# 禁用密码认证
PasswordAuthentication no

禁用 ROOT 密码登录适用于一些为高级账号使用统一秘钥,而低级账号使用其他验证方式的场景,这样可以更加便于管理服务器

最好待测试成功使用秘钥登录后再禁用密码登录

最后重启 SSH 服务

代码语言:javascript复制
sudo service sshd restart

0 人点赞