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

相关推荐
kebidaixu17 小时前
BCU 平台 RS485 驱动适配:从 THVD1406 到 ISO3082
linux
谢平康19 小时前
解决用 rm 报bash: /usr/bin/rm: Argument list too long错
linux·运维·运维开发
hj28625121 小时前
Linux 网络服务综合笔记(概念 + 命令 + 实操案例)2
linux·运维·网络
what_201821 小时前
Linux 磁盘 (查看、划分、inode)
linux·运维·服务器
27399202921 小时前
GDB调试(Linux)
linux
凡人叶枫21 小时前
Effective C++ 条款23:宁以 non-member、non-friend 替换 member 函数
linux·开发语言·c++·嵌入式开发
不会C语言的男孩21 小时前
Linux 系统编程 · 第 4 章:文件属性与元数据
linux·c语言·开发语言
小生不才yz1 天前
Shell脚本精读 · S02-03 | 词拆分、通配符与未加引号的变量
linux
2601_961845421 天前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
A_humble_scholar1 天前
Linux(七)调度器:从硬件矛盾到进程切换的底层逻辑
linux·服务器·网络