Linux系统之间实现免密码登录(SSH无密码登录

简介: 【8月更文挑战第21天】要在Linux系统间实现SSH免密码登录,需先在源机器生成SSH密钥对,然后将公钥复制到目标机器的`.ssh/authorized_keys`文件中。可通过`ssh-keygen`命令生成密钥,并使用`ssh-copy-id`命令传输公钥。最后测试SSH连接,确保能无密码登录。若目标机器缺少相关目录或文件,需手动创建并设置适当权限。完成这些步骤后,即可实现安全便捷的免密码登录。

要在Linux系统之间实现免密码登录(SSH无密码登录),可以通过生成SSH密钥对并在目标机器上设置公钥来实现。下面是一个简单的步骤指南来帮助你在Linux系统之间配置免密码登录。

### 步骤 1: 生成SSH密钥对

1. **在源机器(即发起SSH连接的机器)上生成SSH密钥对**:

  打开终端并运行以下命令来生成SSH密钥对。如果你还没有SSH密钥对,可以使用以下命令生成一个新的:

  ```bash

  ssh-keygen -t rsa -b 2048 -C "your_email@example.com"

  ```

  这里 `-t rsa` 指定密钥类型为RSA,`-b 2048` 指定密钥长度为2048位,`-C "your_email@example.com"` 可选地为密钥添加注释信息。

  当系统询问你是否要指定密钥文件的位置时,按 Enter 键接受默认位置 (`~/.ssh/id_rsa`)。

  如果你不想为密钥设置密码(passphrase),直接按 Enter 键即可。但是,强烈建议为私钥设置一个密码,以增加安全性。

2. **查看生成的密钥对**:

  密钥生成完成后,你会在 `~/.ssh/` 目录下看到两个文件:`id_rsa` 和 `id_rsa.pub`。前者是私钥,后者是公钥。

### 步骤 2: 复制公钥到目标机器

1. **将公钥复制到目标机器**:

  使用 `ssh-copy-id` 命令来将公钥复制到目标机器。这将自动将公钥添加到目标机器的 `.ssh/authorized_keys` 文件中。

  ```bash

  ssh-copy-id user@target-machine-ip

  ```

  这里 `user` 是目标机器上的用户名,`target-machine-ip` 是目标机器的IP地址或主机名。

  如果这是第一次连接到目标机器,你可能需要输入一次密码。之后,系统会提示你确认密钥是否正确,输入 `yes` 继续。

### 步骤 3: 测试免密码登录

1. **测试SSH连接**:

  试着从源机器SSH登录到目标机器,无需输入密码:

  ```bash

  ssh user@target-machine-ip

  ```

  如果一切设置正确,你应该可以直接登录到目标机器而不需要输入密码。

### 额外的步骤 (可选):

- **如果目标机器没有`.ssh`目录**:

 如果目标机器上没有 `.ssh` 目录,你可以手动创建,并确保设置了正确的权限:

 ```bash

 ssh user@target-machine-ip mkdir -p ~/.ssh && chmod 700 ~/.ssh

 ```

- **如果目标机器没有`authorized_keys`文件**:

 如果目标机器上没有 `authorized_keys` 文件,你可以手动创建,并确保设置了正确的权限:

 ```bash

 ssh user@target-machine-ip touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys

 ```

- **检查`.ssh`目录的权限**:

 确保 `.ssh` 目录和 `authorized_keys` 文件的权限正确:

 ```bash

 ssh user@target-machine-ip ls -l ~/.ssh

 ssh user@target-machine-ip ls -l ~/.ssh/authorized_keys

 ```

 目录应该有权限 `drwx------`,文件应该有权限 `-rw-------`。

通过以上步骤,你应该能够在Linux系统之间实现免密码登录。如果遇到任何问题,请提供更具体的错误信息以便进一步诊断。

目录
相关文章
|
4天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
110 78
|
7天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
36 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
119 48
|
3天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
38 13
|
27天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
20 3
|
4天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
16 0
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
33 1
|
1月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
65 1
|
1月前
|
Linux
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
|
15天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
下一篇
DataWorks