0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用无密码SSH密钥登录远程Linux服务器

jf_ZqFkd6Up 来源:Linux迷 2023-04-10 10:31 次阅读

对于远程使用 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

0810249c-d747-11ed-bfe3-dac502259ad0.png

对于 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

083cbfca-d747-11ed-bfe3-dac502259ad0.png

最后通过运行命令验证 SSH 服务状态:linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl status ssh

085db6da-d747-11ed-bfe3-dac502259ad0.png

如果您看到该服务处于活动状态并正在运行,您可以在本地计算机上使用以下命令通过 SSH 远程连接服务器:ssh user@server_ip

08786d86-d747-11ed-bfe3-dac502259ad0.png

替换 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”” 是可选的。

08bd5626-d747-11ed-bfe3-dac502259ad0.png

c) 、出于安全原因,强烈建议对除您自己以外的其他用户设置无权限(甚至不可读): chmod 600 ~/.ssh/linuxmi_ed25519* 将“linuxmi_ed25519”更改为您在上一步中设置的密钥名称。最后有一个星号“*”,所以它也适用于“linuxmi_ed25519.pub”文件。3、将公钥上传到主机服务器:现在使用以下命令将公钥(在我的例子中为“linuxmi_ed25519.pub”)从本地计算机上传到远程服务器:ssh-copy-id -i linuxmi_ed25519.pub linuxmi@192.168.150.216

08f37134-d747-11ed-bfe3-dac502259ad0.png

如果监听端口不是默认的 22,不要记得加上‘-p number’。而且你需要输入远程用户密码才能上传密钥。4、启用无密码SSH密钥登录:首先通过 shell 命令运行“ssh-agent”:eval 'ssh-agent' 接下来,将 SSH 密钥添加到代理: ssh-add linuxmi_ed25519 ssh-add linux_ed25519 如果提示:Could not open a connection to your authentication agent.请先执行如下命令ssh-agent bash 之后,SSH 命令将无需输入认证密钥密码即可登录。5、禁用SSH用户密码登录:成功设置密钥认证后,您可以禁用用户密码登录,这样其他人就无法访问服务器! 首先,连接到远程服务器并运行命令来编辑 ssh 守护程序配置文件:sudo nano /etc/ssh/sshd_config 接下来,取消注释“#PasswordAuthentication yes”行并将其值设置为 no,因此它将是:PasswordAuthentication no 然后按 Ctrl+X,键入 y 并按 Enter 保存文件。 最后通过重新加载SSHsudo systemctl reload ssh 无密码进入如下图:

0927f602-d747-11ed-bfe3-dac502259ad0.png

OK,就这样。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4478

    浏览量

    91295
  • Linux
    +关注

    关注

    87

    文章

    11030

    浏览量

    207248
  • 服务器
    +关注

    关注

    12

    文章

    8330

    浏览量

    83441

原文标题:如何使用无密码 SSH 密钥登录远程 Linux 服务器

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何远程登录服务器登录失败是什么原因?

    我用Linux服务器,遇到了有关远程登录的一些问题,于是搜索了一些资料,整理了一篇文档,作为记录。如果你也遇到过 相似的问题,欢迎一起探讨! 一、
    发表于 02-01 15:32

    使用 PuTTY 远程登录管理服务器 -- 转载

    即可将证书保存到本地注册表中。实际上,如果删除了注册表中的这个安全证书,或者换台机器或系统,还会再次有这个安全警告。使用 PuTTY 登录服务器时关于 SSH 密钥的安全警告root
    发表于 07-04 23:11

    如何使用SSH远程命令登录香橙派开发板

    地址为了远程登录香橙派开发板,首先需要获取开发板的 IP 地址。我们可以通过串口来查看。3.使用 ssh 远程登录香橙派开发板3.1使用
    发表于 05-22 17:16

    关于使用终端工具远程登录连接Linux服务器失败或者登录成功后自动断开的解决办法

    关于使用终端工具远程登录连接Linux服务器失败或者登录成功后自动断开问题
    发表于 06-09 17:25

    小白学习【鸿蒙系统】系列——强推SSH工具MobaXterm

    三遍;MobaXterm的强大优势就是将SSH和SFTP的可视化结合在了一起,既可以进行远程访问Linux服务器,又可以进行文件传输;缺点是不支持MAC;看界面:输入虚拟机
    发表于 11-12 22:06

    VScode终端ssh连接不到Linux服务器问题

    在VScode终端用ssh连接Linux服务器无法识别ssh1. 在网上下载了一个Git进行Linux连接,发现输入
    发表于 11-21 16:26

    【触觉智能 Purple Pi OH 开发板体验】网络状态连接ssh解决办法

    SSH代理服务器,可以访问内部网络资源,而无需直接将服务暴露在外部网络。这对于保护内部网络安全非常有用。 移动设备连接: 移动设备上也有SSH客户端应用,使用户能够通过手机或平板电脑连
    发表于 08-20 12:38

    linux系统如何登录远程linux服务器

    linux系统登录远程linux服务器:有多种不同的协议可供选择,也许SSH是“最好”的。
    发表于 05-14 09:35 3432次阅读
    <b class='flag-5'>linux</b>系统如何<b class='flag-5'>登录</b>到<b class='flag-5'>远程</b><b class='flag-5'>linux</b><b class='flag-5'>服务器</b>

    Linux上保护 SSH 服务器连接的方法

    SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程
    的头像 发表于 08-08 09:55 759次阅读

    Linux横向移动手法-CSK靶机

    服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过SSH暴力破解用户的密码远程
    的头像 发表于 12-22 10:12 904次阅读

    什么是SSH密钥?如何使用SSH密钥

    SSH密钥是用户名和密码的替代方法,是一种用户身份验证方法。它主要用于向服务提供加密文件而不是基于文本的密码
    的头像 发表于 05-04 09:04 4968次阅读
    什么是<b class='flag-5'>SSH</b><b class='flag-5'>密钥</b>?如何使用<b class='flag-5'>SSH</b><b class='flag-5'>密钥</b>?

    轻量服务器怎么搭建ssh

    在搭建轻量服务器时,我们通常需要设置SSH登录,以便能够通过SSH客户端远程连接到服务器。下面是
    的头像 发表于 10-10 09:59 445次阅读

    如何通过SSH连接到Linux计算机?

    如何通过SSH连接到Linux计算机? SSH是一种加密的网络协议,用于在不可信的网络中安全地远程访问和操作计算机。在Linux环境中,
    的头像 发表于 01-12 16:06 416次阅读

    宝塔面板修改服务器密码怎么设置?

    宝塔面板是一种用于服务器管理的Web面板,允许用户通过图形用户界面轻松管理服务器。如果你想修改服务器密码,你可能需要通过SSH
    的头像 发表于 01-24 17:27 805次阅读

    怎么用SSH密钥登陆vps?

    使用SSH密钥登录VPS(Virtual Private Server)是一种更安全和方便的方式,相比使用密码SSH
    的头像 发表于 02-20 16:29 540次阅读