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

目录
相关文章
|
5月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
473 3
Linux系统禁用swap
|
5月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
982 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
570 0
Linux系统初始化脚本
|
5月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
523 1
|
分布式计算 Hadoop 网络安全
|
安全 Shell Linux
为什么不能在SSH(Secure Shell)登录中设置ulimit值?
关闭这些选项会带来一些安全风险。但那也只是在SSH守护进程的漏洞被发现并且被利用的情况下才会出现。关闭之后就意味着sshd不会创建非特权子进程去处理进站连接。如果漏洞存在而且被利用,则有人可以控制sshd进程,而这个进程是以root身份运行的。
2080 0
|
网络安全 数据安全/隐私保护
SSH免登录设置
基础篇 执行: ssh-keygen -t rsa rocky@tiger:~$ ssh-keygen -t rsa Generating public/private rsa key pair.
813 0
|
安全 Shell Linux
为什么不能在SSH(Secure Shell)登录中设置ulimit值?
SuSE上的一些问题,可能需要另参考:http://blog.chinaunix.net/u2/64804/showart.php?id=2026903 相关版本:红帽企业Linux   现象:   如果你在文件/etc/security/limits.conf中设定了值。
928 0
|
4月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
361 146
|
7月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
2511 0