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系统之间实现免密码登录。如果遇到任何问题,请提供更具体的错误信息以便进一步诊断。

目录
相关文章
|
2天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
3天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
4天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
5天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
3月前
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
|
22天前
|
安全 Linux 网络安全
在Linux中,如何配置SSH以确保远程连接的安全?
在Linux中,如何配置SSH以确保远程连接的安全?
|
23天前
|
安全 Linux Shell
SSH 命令完整实用指南 | Linux SSH 服务
【8月更文挑战第20天】
77 0
|
28天前
|
安全 Linux Shell
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
如何在 Linux 服务器上配置基于 SSH 密钥的身份验证
34 0
|
30天前
|
Linux 网络安全 数据安全/隐私保护
Linux——配置SSH免密登录
Linux——配置SSH免密登录
27 0
|
2月前
|
安全 Ubuntu Linux
记录一次Linux服务器被人使用SSH字典爆破
曾经我以为互联网到至今应该是很和平的状态,但是经历了这次ssh字典爆破攻击后我才意识到网络攻击无处不在,建议系统密码使用比较复杂的随机字符组合,七八十位都没问题,数据可贵,电脑该装杀毒软件的就装上,别因为那占用那点内存而舍弃杀毒软件,防网络攻击于未然 !