Ubuntu SSH 免密码登陆

个人博客地址:Ubuntu SSH 免密码登陆 | 一张假钞的真实世界

使用 Ubuntu 系统远程登陆时,一般使用用户名加密码登陆,但这种方式每次需要输入用户名和密码,比较繁琐。我们可以用更具安全性的 RSA 密钥认证方式避免频繁输入用户名和密码。

应用场景

如果我们需要从一台机器上同时操作多台 Ubuntu 服务器,免密码登陆操作起来就方便多了。

实现步骤

安装 SSH 服务

在 Ubuntu 服务器上安装 SSH 服务,方法参见我的另外一篇博客:Ubuntu 安装 SSH,并开启 root 远程登录

Client 端生成公钥和密钥

使用以下命令生成客户端公钥和密钥:

复制代码
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

生成的密钥对在目录 ~/.ssh/ 下,id_rsa.pub 是公钥,id_rsa 是密钥。

将 Client 端的公钥添加到 Server 端的公钥文件中

首先检查 Server 端需要认证的用户(如 root)的 Home 目录下,隐藏目录 .ssh 中是否存在一个名为 authorized_keys 的文件,若不存在,使用命令:touch authorized_keys 创建一个空文件创建完成后,则可以执行如下步骤:

  1. 复制 Clinet 端公钥的内容。
  2. 将复制的 Client 端公钥内容粘贴至 Server 端的 authorized_keys 文件中,保存文件。
  3. 更改 authorized_keys 文件的权限为 600,执行命令 chmod 600 authorized_keys
  4. 重启服务端 sshd 服务:service sshd restart

验证无密码登陆

在客户端输入命令:ssh root@192.168.1.133(用户名和 IP 自行替换),看到如下结果则无密码登陆配置成功。

在将客户端公钥添加到服务端时,如果是从一台客户端登陆多台服务器,则可以先将公钥添加至客户端的 authorized_keys 文件,直接将客户端 authorized_keys 文件 scp 到服务器对应的目录下,然后重启服务器 sshd 服务。但这个过程中还是需要先输入用户名和密码登陆服务器重启 sshd 服务。是否有更便捷的方式有待学习。

相关推荐
小此方1 小时前
Re:Linux系统篇(五十七)线程篇 · 十:基于环形缓冲的生产者消费者模型与信号量
linux·运维·驱动开发
fanged2 小时前
Linux的DD命令
linux·运维·服务器
张洛闻Eren3 小时前
MySQL 管理复制拓扑【MySQL第四课】
linux·运维·数据库·mysql
xiaohua10094 小时前
Linux-JVM线程查询
linux·jvm
blueSatchel4 小时前
u-boot启动过程(bootROM到SPL到u-boot)
linux·u-boot
祖力555 小时前
快速学会数据结构中的链式队列与循环队列
linux·c语言·数据结构·算法
原凉是这样的丶5 小时前
Qwen3.8-27B 开源后,我用双 RTX 4090 跑通了:vLLM 0.27.1、128K 上下文与 MTP 实测
linux·算法
没伞的行者5 小时前
《C++ Primer Plus(第六版)全书代码整理 | 章节源码 + README知识总结(Gitee、GitHub开源)》
linux·开发语言·c++·gitee·github
北京迅为6 小时前
【迅为开发板专属工具】把烧写入口放进浏览器|Topeet RK Flash
linux·人工智能·嵌入式·rk3568·烧写