Linux日常运维-SSHD(一)

发布时间 - 2025-06-20 00:00:00    点击率:

作者介绍:在简历上没有标榜自己为精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图展示了计划更新的内容和当前进度(不定期更新)。

本小节内容属于Linux进阶部分的日常运维内容,掌握这些日常运维技巧或方法将在我们的日常运维过程中带来诸多便利。主要从以下几个部分进行讲解:

Linux日常运维-主机名&hosts

Linux日常运维-history

Linux日常运维-SSHD(一)(本章节)

Linux日常运维-SSHD(二)

Linux日常运维-ENV(一)

Linux日常运维-ENV(二)

Linux日常运维-任务计划

我们之前讨论了如何通过ssh进行登录,通常是使用密码进行的。然而,在ssh登录过程中还有几个常见的问题,比如我们是否可以不使用ssh密码,而采用一种无密码的方式进行登录(目前许多公有云平台在创建新的云主机时,可以选择使用密码还是密钥),以及ssh端口默认是22,是否可以修改,或者为了安全,是否可以禁止root登录。

无密码登录时通常会涉及到两个概念:私钥和公钥,它们是一对的。私钥存放在本地服务器中,而公钥则存放在我们希望无密码登录的服务器中。如果从云平台开通主机时选择密钥登录,你将获得一个文件,这就是私钥。如果你不想使用系统生成的密钥,你也可以上传自己定义的公钥。

在实际运维中,某些软件要求配置无密码登录才能更好地运行,甚至必须使用无密码登录。还可以设置服务器使用一个你自己都不知道或者是空的密码,然后通过密钥登录来提高安全性。

配置无密码登录

1.生成公钥及私钥

# 输入该命令后,一直按回车即可。
# 这里也可以添加许多参数,甚至可以设置密钥的密码。
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
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:4jzW3nqWv4wxN7j4v0LjFI+DUuYFVQ1xeiS6fUF3yGo root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|         ...==+.o|
|        .  . *+..|
|         .. ..o  |
|        o ooE. . |
|      .+So.=. .  |
|     o.oo *...   |
|      =..+++o    |
|     . o o*B .   |
|        +==+*o   |
+----[SHA256]-----+

2.查看公钥和私钥

[root@localhost]# ls -l /root/.ssh/
总用量 8
-rw-------. 1 root root 1675 6月  28 22:57 id_rsa     //私钥
-rw-r--r--. 1 root root  408 6月  28 22:57 id_rsa.pub //公钥

3.将公钥传输到其他服务器

# 需要输入对方服务器的密码
# 也可以手动将id_rsa.pub文件的内容放到/root/.ssh/authorized_keys中,注意权限
# 我们将公钥传输到108服务器后,就可以无密码登录108服务器了
[root@localhost .ssh]# ssh-copy-id 192.168.179.108
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.179.108 (192.168.179.108)' can't be established.
ECDSA key fingerprint is SHA256:KcCHSnldK0xz0g82jmvKQ5bFYI8Wn04rPYbmK94nwhQ.
ECDSA key fingerprint is MD5:f3:3b:6d:09:54:06:57:b0:13:3a:75:e1:ca:79:70:bd.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.179.108's password: 
Number of key(s) added: 1

Now try logging into the machine, with: "ssh '192.168.179.108'" and check to make sure that only the key(s) you wanted were added.

4.查看远程服务器的公钥

# 虽然公钥在原始服务器的名字和内容是/root/.ssh/id_rsa.pub,但在复制到新服务器后名字会变成authorized_keys

如果该服务器允许多个其他机器无密码登录,则该文件会有多行。

[root@localhost .ssh]# cd /root/.ssh/ [root@localhost .ssh]# ls -l 总用量 4 -rw-------. 1 root root 408 6月 28 23:02 authorized_keys

5.验证无密码登录

# 未输入密码,也可以直接登录。

登录时,它会读取本地的私钥和服务器中的公钥进行验证,验证通过则登录成功。

[root@localhost .ssh]# ssh 192.168.179.108 Last login: Fri Jun 28 23:09:05 2025 from 192.168.179.1 [root@localhost ~]#

总结

1.这里所有的操作都是基于root账号进行的,实际上也可以使用普通账号配置无密码登录。

2.将私钥带到Windows上也可以成功登录服务器,使用ssh软件并选择密钥登录即可。

3.如果不进行任何操作,它同时支持密码和密钥两种登录方式。也就是说,可以使用密钥登录,也可以使用密码登录。

4.同一台服务器,可以配置多个公钥,允许不同的私钥使用无密码登录。在实际的authorized_keys文件中,这会体现为多行。

5.使用密钥登录可以避免密码被撞库的风险,从而提高系统的安全性。


# linux  # windows  # ai  # ssh  # 思维导图  # 公钥  # 可以使用  # 几个  # 多个  # 器中  # 上也  # 过程中  # 都是  # 进阶  # 如果你 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  详解Android——蓝牙技术 带你实现终端间数据传输  如何快速重置建站主机并恢复默认配置?  如何基于云服务器快速搭建个人网站?  C++时间戳转换成日期时间的步骤和示例代码  如何快速完成中国万网建站详细流程?  如何快速生成ASP一键建站模板并优化安全性?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  JavaScript如何实现音频处理_Web Audio API如何工作?  如何用狗爹虚拟主机快速搭建网站?  高端网站建设与定制开发一站式解决方案 中企动力  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  网站制作企业,网站的banner和导航栏是指什么?  高端云建站费用究竟需要多少预算?  Swift中switch语句区间和元组模式匹配  如何正确下载安装西数主机建站助手?  如何获取上海专业网站定制建站电话?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在服务器上配置二级域名建站?  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel如何记录自定义日志?(Log频道配置)  如何快速查询域名建站关键信息?  JavaScript如何实现类型判断_typeof和instanceof有什么区别  JS实现鼠标移上去显示图片或微信二维码  如何快速搭建安全的FTP站点?  如何快速搭建高效简练网站?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  重庆市网站制作公司,重庆招聘网站哪个好?  如何在宝塔面板创建新站点?  🚀拖拽式CMS建站能否实现高效与个性化并存?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Python数据仓库与ETL构建实战_Airflow调度流程详解  清除minerd进程的简单方法  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  如何快速使用云服务器搭建个人网站?  Python函数文档自动校验_规范解析【教程】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何在阿里云完成域名注册与建站?  lovemo网页版地址 lovemo官网手机登录  利用python获取某年中每个月的第一天和最后一天  js实现点击每个li节点,都弹出其文本值及修改  Laravel怎么在Controller之外的地方验证数据