对于远程使用 Ubuntu 或其他 Linux 服务器(例如 Debian、CentOS 和 Fedora)的用户,可以看看本文介绍的如何使用无密码 SSH 密钥登录远程 Ubuntu 20.04 服务器。 与用户密码登录相比,SSH 密钥认证更安全,因为只有拥有密钥的人才能连接,并且密钥通过不同的算法进行了很好的加密。它还通过无密码登录使 SSH 连接变得简单。1. 在 Ubuntu Linux 中启用 SSH 服务:如果您没有在远程服务器中启用 SSH 服务。您需要先连接到服务器,然后运行命令安装openssh:linuxmi@linuxmi:~/www.$ sudo apt-get install openssh-server对于 CentOS 和 Fedora 服务器,请改用linuxmi@linuxmi:~/www.$ sudo dnf install openssh-server 命令。linuxmi@linuxmi:~/www.$ sudo systemctl enable ssh && sudo systemctl start sshlinuxmi@linuxmi:~/www.$ sudo systemctl status ssh如果您看到该服务处于活动状态并正在运行,您可以在本地计算机上使用以下命令通过 SSH 远程连接服务器:替换 user 和 server_ip。如果不是默认的 22,则使用 -p port_number 指定端口号。身份验证密钥在本地计算机中生成。它们通常由私钥和公钥组成。通过将公钥上传到远程 Linux 服务器,您将能够在本地机器上使用私钥进行 SSH 登录。注意:本教程在 Ubuntu 本地计算机上进行了测试,但它应该适用于大多数 Linux,包括 Debian、Fedora、CentOS 和 Arch Linux。OpenSSH 客户端大多是开箱即用的。如果没有,请在本地计算机上运行此命令进行安装:linuxmi@linuxmi:~/www.$ sudo apt install openssh-client对于 CentOS 和 Fedora,请改用linuxmi@linuxmi:~/www.$ sudo dnf install openssh openssh-clients。SSH -keygen命令允许通过RSA、ECDSA和ED25519算法生成SSH密钥对。RSA得到了广泛的使用和最好的支持,而ED25519提供了更好的安全性和良好的性能。a)、首先,在本地计算机终端窗口中创建并导航到.ssh目录:mkdir -p ~/.ssh && cd ~/.sshssh-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”文件。现在使用以下命令将公钥(在我的例子中为“linuxmi_ed25519.pub”)从本地计算机上传到远程服务器:ssh-copy-id -i linuxmi_ed25519.pub linuxmi@192.168.150.216如果监听端口不是默认的 22,不要记得加上'-p number’。而且你需要输入远程用户密码才能上传密钥。首先通过 shell 命令运行“ssh-agent”:Could not open a connection to your authentication agent.之后,SSH 命令将无需输入认证密钥密码即可登录。成功设置密钥认证后,您可以禁用用户密码登录,这样其他人就无法访问服务器!首先,连接到远程服务器并运行命令来编辑 ssh 守护程序配置文件:sudo nano /etc/ssh/sshd_config接下来,取消注释“#PasswordAuthentication yes”行并将其值设置为 no,因此它将是:PasswordAuthentication no然后按 Ctrl+X,键入 y 并按 Enter 保存文件。sudo systemctl reload ssh来自:Linux迷 链接:https://www./no-password-ssh-ubuntu-20-04.html
|