Linux服务器配置ssh免密登陆多台服务器、服务器别名配置

Linux服务器配置ssh免密登陆多台服务器

  • [一、 生成密钥对](#一、 生成密钥对)
  • [二、 分发公钥](#二、 分发公钥)
  • [三、 测试我免密登陆配置是否成功](#三、 测试我免密登陆配置是否成功)
  • 四、别名配置

本博客不讨论免密登陆的原理,所设计内容非专业术语,只为便于理解及演示如何进行实际操作,如果想了解ssh免密登陆的原理可以参考这篇内容Linux服务器配置ssh免密登陆。

如果只是对单机进行操作,也可以参考上面的博客。

一、 生成密钥对

这一步是在控制机,也就是使用这台机器去ssh登陆其他机器。

首先需要检查是否控制机上是否已经生成密钥。

bash 复制代码
ls ~/.ssh/

如果没有看到id_rsa.pub文件则说明控制机上并没有生成密钥对,这里由于要演示完整操作,就假设没有密钥对,如果你的设备上已经有这个文件可以直接跳过这一步。

我们生成新的密钥对。

bash 复制代码
ssh-keygen -t rsa -b 4096

这里 -t rsa参数是指使用rsa加密算法,如果对原理感兴趣可查看Linux服务器配置ssh免密登陆

-b 4096是指使用密钥长度为4096,更安全一些。

输入命令后一路回车(一直按enter键即可)

通过下面命令可以看到多了两个文件id_rsa和id_rsa.pub,那么说明密钥已经成功生成了,如上图所示。

其中

  • id_rsa:这个是我们的私钥是不能泄漏的,
  • id_rsa.pub:这个是我们生成的公钥,这个是需要给别人的,也就是需要给我们需要登陆的机器。
bash 复制代码
ls ~/.ssh

二、 分发公钥

由于本文章是对多台服务器进行免密登陆配置所以需要将密钥分发给多台服务器。

这一步我们使用的是ssh-copy-id命令

命令格式如下:

bash 复制代码
ssh-copy-id username@ip

其中username是要远程登陆的服务器账户中的用户名,ip是对应服务器的ip地址。

ssh-copy-id命令会自动将本地~/.ssh/id_rsa.pub追加到需要被登陆的服务器的~/.ssh/authorized_keys文件中。

可以看到执行完ssh-copy-id username@ip应该会出现下面的类似的内容,这就代表免密配置成功了,需要登陆的机器已经认识我们的控制机器了。

多台服务器的只需要将上面的命令重复N即可完成。

三、 测试我免密登陆配置是否成功

直接进行ssh登陆看是否需要输入密码,如果不需要输入密码则免密登陆就配置成功了。

四、别名配置

当我们有多个服务器我们不可能每个服务器的ip地址都记得,还需要记得用户名,这太麻烦了,而且每次登陆都需要输入这么长的内容,很繁琐。

这里我们给服务器配置别名来简化这个过程,这个过程是在操作机器上面进行操作的。

检查 ~/.ssh目录下是否有文件config,如果有这个文件直接进去编辑这个文件即可,如果没有就创建这个文件,我这里是没有的。

bash 复制代码
ls ~/.ssh

使用touch创建这个config文件

bash 复制代码
touch ~/.ssh/config

编辑config文件进行配置

bash 复制代码
Host server
    HostName 192.168.1.101
    User uername
    Port 22

解释一下上面应该怎么配置,Host 后面的server需要把server替换成你想要ssh的别名,也就是说你可以通过ssh server代替ssh username@ip,所以可以讲server替换成一个容易记忆并且比较短的内容

然后下面HostName就填服务器的ip,由于我这里是用的内网进行演示的,所以就是192开头,User后面的username替换成服务器上的用户名,有可能是root,当然这取决于服务器上的用户名到底是什么,Port一般默认是22号端口,如果你进行了替换就填对用的ssh端口号就好了。

根据上面内容,下面是我的配置文件,由于我需要用到ip,所以我这里直接用ip的后面作为别名了。

bash 复制代码
# --- 我的服务器别名 ---

Host 104
    HostName 192.168.1.104
    User node1
    Port 22

Host 105
    HostName 192.168.1.105
    User zc
    Port 22

Host 106
    HostName 192.168.1.106
    User nvidia
    Port 22

可以看到我的三台机器都通过别名成功进行了免密登陆。


至此我们就成功进行了多台服务器的免密登陆配置,以及别名配置,以后就可以清爽登陆服务器啦~~~

🎉🎉🎉完结撒花~~~

相关推荐
wuminyu1 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
ragnwang2 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
王中阳Go2 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
海宇AI2 小时前
零信任架构实战:基于海宇个人风险报告构建自动化分期商城信用额度初审网关
运维·人工智能·架构·自动化
IMPYLH2 小时前
Linux 的时间为什么会被拨回去
linux·运维·服务器
weixin_307779133 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
2601_963282773 小时前
寒地窄带通信工程实践:黑龙江哈尔滨对讲机选型、组网与合规运维总结
运维·服务器·网络
云和数据.ChenGuang3 小时前
深入解析 Python 的 dir():从用法到 CPython 源码实现
开发语言·人工智能·python·langchain
叼烟扛炮4 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
是真的小外套4 小时前
网络安全实战第14期:Week2周末闯关
网络·安全·web安全