如何使用无密码 SSH 密钥登录远程 Ubuntu 20.04 服务器
对于远程使用 Ubuntu 或其他 Linux 服务器(例如 Debian、CentOS 和 Fedora)的用户,可以看看本文介绍的如何使用无密码 SSH 密钥登录远程 Ubuntu 20.04 服务器。
与用户密码登录相比,SSH 密钥认证更安全,因为只有拥有密钥的人才能连接,并且密钥通过不同的算法进行了很好的加密。它还通过无密码登录使 SSH 连接变得简单。
1. 在 Ubuntu Linux 中启用 SSH 服务:
如果您没有在远程服务器中启用 SSH 服务。您需要先连接到服务器,然后运行命令安装openssh:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install openssh-server
对于 CentOS 和 Fedora 服务器,请改用linuxmi@linuxmi:~/www.linuxmi.com$ sudo dnf install openssh-server 命令。
安装完成后,通过命令启用并启动服务:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable ssh && sudo systemctl start ssh
最后通过运行命令验证 SSH 服务状态:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl status ssh
如果您看到该服务处于活动状态并正在运行,您可以在本地计算机上使用以下命令通过 SSH 远程连接服务器:
ssh user@server_ip
替换 user 和 server_ip。 如果不是默认的 22,则使用 -p port_number 指定端口号。
2、启用 SSH 密钥认证:
身份验证密钥在本地计算机中生成。 它们通常由私钥和公钥组成。 通过将公钥上传到远程 Linux 服务器,您将能够在本地机器上使用私钥进行 SSH 登录。
注意:本教程在 Ubuntu 本地计算机上进行了测试,但它应该适用于大多数 Linux,包括 Debian、Fedora、CentOS 和 Arch Linux。
1、安装 OpenSSH 客户端:
OpenSSH 客户端大多是开箱即用的。 如果没有,请在本地计算机上运行此命令进行安装:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install openssh-client
对于 CentOS 和 Fedora,请改用linuxmi@linuxmi:~/www.linuxmi.com$ sudo dnf install openssh openssh-clients。
2、生成SSH密钥对:
SSH -keygen命令允许通过RSA、ECDSA和ED25519算法生成SSH密钥对。RSA得到了广泛的使用和最好的支持,而ED25519提供了更好的安全性和良好的性能。
a)、首先,在本地计算机终端窗口中创建并导航到.ssh目录:
mkdir -p ~/.ssh && cd ~/.ssh
b)、接下来,运行命令生成密钥对:
ssh-keygen -t ed25519 -f linuxmi_ed25519 -C “root@linuxmi”
在代码中,你可以用你喜欢的加密算法替换“ed25519”。” -f linuxmi_ed25519 “指定键名,“-C “root@linuxmi”” 是可选的。
c) 、出于安全原因,强烈建议对除您自己以外的其他用户设置无权限(甚至不可读):
chmod 600 ~/.ssh/linuxmi_ed25519*
将“linuxmi_ed25519”更改为您在上一步中设置的密钥名称。 最后有一个星号“*”,所以它也适用于“linuxmi_ed25519.pub”文件。
3、将公钥上传到主机服务器:
现在使用以下命令将公钥(在我的例子中为“linuxmi_ed25519.pub”)从本地计算机上传到远程服务器:
ssh-copy-id -i linuxmi_ed25519.pub [email protected]
如果监听端口不是默认的 22,不要记得加上‘-p number’。而且你需要输入远程用户密码才能上传密钥。
4、启用无密码SSH密钥登录:
首先通过 shell 命令运行“ssh-agent”:
eval ‘ssh-agent’
接下来,将 SSH 密钥添加到代理:
ssh-add linuxmi_ed25519
ssh-add linux_ed25519
如果提示:
请先执行如下命令
ssh-agent bash
之后,SSH 命令将无需输入认证密钥密码即可登录。
5、禁用SSH用户密码登录:
成功设置密钥认证后,您可以禁用用户密码登录,这样其他人就无法访问服务器!
首先,连接到远程服务器并运行命令来编辑 ssh 守护程序配置文件:
sudo nano /etc/ssh/sshd_config
接下来,取消注释“#PasswordAuthentication yes”行并将其值设置为 no,因此它将是:
PasswordAuthentication no
然后按 Ctrl+X,键入 y 并按 Enter 保存文件。
最后通过重新加载SSH
sudo systemctl reload ssh
无密码进入如下图:
OK,就这样。
The post 如何使用无密码 SSH 密钥登录远程 Ubuntu 20.04 服务器 first appeared on Linux迷.
共有 0 条评论