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 服务。是否有更便捷的方式有待学习。

相关推荐
重生之小比特2 分钟前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
Uncertainty!!21 分钟前
Windows 10 与 Ubuntu 22.04 通过 Samba 共享文件夹
windows·ubuntu·共享文件夹
あ-30 分钟前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu32 分钟前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
老秦包你会40 分钟前
Linux第十课---------Linux信号
linux
缘友一世1 小时前
GLM5.3 CyberSec w4A16本地部署[2]:并行策略与 PP 切分
ubuntu·vllm·glm5.3 cybersec
北风toto2 小时前
Linux 服务器如何判断 CPU 是否支持 x86-64-v2 指令集
java·linux·服务器
程序员-Benothing2 小时前
Linux抓包分析教程:tcpdump、Wireshark、tshark实战
linux·运维·服务器
QMCY_jason2 小时前
ubuntu x86_64架构的编译 aarch64架构的程序
linux·运维·ubuntu
拂拉氏2 小时前
【知识讲解】 Linux进程间通信之管道与共享内存
linux·进程间通信