用SSH与服务器进行免密登陆

本文详细介绍如何通过创建SSH密钥对实现免密登录云服务器,包括生成密钥、复制公钥到远程服务器等步骤,简化日常运维操作,提升安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般我们与要登陆云服务器时需要输入密码,很麻烦也不安全,因此我们就需要免密登陆了。

Step-1: 创建登录密钥

$ ssh-keygen  # 执⾏此命令
# 程序输出
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # 确认密钥
⽂件位置 (敲回⻋)
Enter passphrase (empty for no passphrase): # 为密钥设置密码 (⽆需密
码, 直接回⻋)
Enter same passphrase again: # 确认密码 (再次回⻋)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:WpGZKdaT3SbGlx+pNi6H5/SBNZXjk5C468y+4MeNKxs root@box
The key's randomart image is:
+---[RSA 2048]----+
| |
| . O ......|
| o X =.=ooo.|
| . . + +.oooo|
| S .+ ++ |
| o +.+ ..|
| . E+.O . |
| ..*X o . |
| o=B+ . |
+----[SHA256]-----+

Step-2: 复制公钥到远程服务器

  1. 本地打开 ~/.ssh/id_rsa.pub ⽂件, 复制全部⽂本内容
  2. ssh 登录到远程服务器, vim 打开 ~/.ssh/authorized_keys ⽂件
  3. 将复制的内容写⼊⽂件, 保存退出

好了,这样下次登陆时就不需要输入密码了。当然你嫌这个方法麻烦的话,还可以使用下面这种简便的方法。

ssh-copy-id -i .ssh/id_rsa 用户名@服务器域名
### SSH三台服务器免密登录实验报告 #### 实验背景 在分布式系统、集群环境或自动化运维场景下,频繁的手动输入密码进行SSH连接不仅效率低下,而且容易出错。因此,配置SSH无密码登录可以极大地提高工作效率并简化操作流程。 本实验旨在通过设置三台Linux服务器之间的SSH互信(即无需每次手动输入密码即可完成远程登录),从而实现高效的自动化管理。 #### 环境准备 1. **操作系统**:所有机器均采用CentOS 7.x版本。 2. **网络拓扑结构** - Server A (IP: 192.168.0.1) - Server B (IP: 192.168.0.2) - Server C (IP: 192.168.0.3) 每个节点都已安装了`openssh-client` 和 `openssh-server` 并正常运行,并且能够相互访问对方的开放端口(默认为22)。 #### 步骤一:生成公钥对 首先,在Server A上创建一个新的RSA密钥对用于身份验证: ```bash ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_A ``` 这里我们指定了文件名为id_rsa_A以便于区分其他可能存在的私钥文件;同时设置了更大的位数以增强安全性(-b 参数)。 接下来将产生的公钥分发给另外两台服务端(Server B & Server C): ```bash cat ~/.ssh/id_rsa_A.pub | ssh user@serverB "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" # 对于第三个服务器重复同样的过程... cat ~/.ssh/id_rsa_A.pub | ssh user@serverC "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` 注意替换上述命令中的"user"为您实际使用的用户名以及目标主机名/IP地址. #### 步骤二:测试连通性 回到Server A终端尝试直接通过ssh命令去链接Server B/C: ```bash ssh user@serverB # 如果成功则表示不需要再提供额外的信息如密码等信息. ssh user@serverC # 同样地检查第三台电脑间的通信状况。 ``` 如果一切顺利的话,则证明已经实现了从A到BC两者的无缝接入;反之若失败需排查错误原因,比如权限问题或是防火墙阻止等情况。 为了保证双向互通,在Server B 和 Server C 上也应各自执行一次相同的步骤来交换它们各自的公钥至其余两个成员那里。(即将Server B 的 id_rsa_B 分别发送给 A&C ; 将Server C 的 id_rsa_C 发送给 A&B ) #### 结论 至此整个过程中涉及到的所有设备间均已建立起基于SSH协议的安全通道,可以在彼此之间自由穿梭而不再受限于繁琐的身份认证环节。这对于日常工作中需要频繁跨越多台物理机工作的工程师来说是非常有帮助的功能特性之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值