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

目录
相关文章
|
1天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
2天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
2天前
|
Ubuntu Linux
Linux系统基本操作
Linux系统基本操作
12 7
|
3天前
|
监控 安全 Linux
使用NRPE和Nagios监控Linux系统资源的方法
通过遵循以上步骤,可以有效地使用NRPE和Nagios监控Linux系统资源,确保系统运行稳定,并及时响应任何潜在的问题。这种方法提供了高度的可定制性和灵活性,适用于从小型环境到大型分布式系统的各种监控需求。
13 2
|
12月前
|
弹性计算 安全 Linux
Linux的root账号忘记密码怎么办?看这一篇就够了!
今天上班的时候有个小伙伴说他管理的一台服务器密码给搞忘了,因为之前做过基线,试了5次就给封了半个小时,现在又急着要上去部署,我啪的一下很快啊,直接甩出了这篇文章。
|
Linux Shell 数据安全/隐私保护
linux忘记密码怎么办
linux忘记密码怎么办
56 0
|
Linux 数据安全/隐私保护
|
Linux 数据安全/隐私保护
|
Linux 数据安全/隐私保护
Linux忘记开机密码怎么办?
Linux忘记开机密码怎么办?<br>1. 开机ESC/Shift,在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键<br>2. 再次用上下键选中你平时启动linux的那一项(类似于kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键<br>3. 修改你现在见到的命令行,加入single,结果如下:<br>kerne
2743 0
|
2天前
|
Linux
Linux常用命令包括
Linux常用命令包括
10 5
下一篇
无影云桌面