Linux日常运维-SSHD(一)

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

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

Linux日常运维-主机名&hosts

Linux日常运维-history

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

Linux日常运维-SSHD(二)

Linux日常运维-ENV(一)

Linux日常运维-ENV(二)

Linux日常运维-任务计划

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

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

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

配置无密码登录

一览运营宝 一览运营宝

一览“运营宝”是一款搭载AIGC的视频创作赋能及变现工具,由深耕视频行业18年的一览科技研发推出。

一览运营宝 41 查看详情 一览运营宝

1.生成公钥及私钥

# 输入该命令后,一直按回车即可。# 这里也可以添加许多参数,甚至可以设置密钥的密码。[root@localhost ~]# ssh-keygenGenerating 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.localdomainThe 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 keysroot@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.108Last login: Fri Jun 28 23:09:05 2024 from 192.168.179.1[root@localhost ~]#

总结

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

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

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

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

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

以上就是Linux日常运维-SSHD(一)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/486760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 13:45:25
下一篇 2025年11月8日 13:46:52

相关推荐

  • js反射reflect对象用法_js反射reflect对象详解

    reflect对象提供了一组静态方法用于拦截和自定义javascript内部操作,使对象操作更可控且标准化。1. reflect.get()允许指定this绑定,确保继承或复杂结构中this指向正确对象;2. reflect.set()返回布尔值指示设置是否成功,便于属性值验证;3. reflect…

    2025年12月20日 好文分享
    000
  • React中如何使用useState管理状态?

    usestate是react中用于管理组件状态的hook,它返回一个状态值和更新该状态的函数。例如const [count, setcount] = usestate(0);其中count为当前状态,setcount用于更新状态。usestate的初始化值仅在首次渲染生效,后续更新会忽略初始值。状态…

    2025年12月20日 好文分享
    000
  • Node.js如何实现爬虫程序?

    node.js 实现爬虫程序的核心在于利用其非阻塞 i/o 特性高效处理并发请求。1. 使用 axios 或 node-fetch 发起 http 请求,获取 html 内容;2. 利用 cheerio 或 jsdom 解析 html,提取所需数据;3. 采用 async/await 处理异步逻辑,…

    2025年12月20日 好文分享
    000
  • Node.js如何实现HTTP缓存?

    node.js实现http缓存的核心在于控制http响应头。1.cache-control是最常用的缓存控制方式,支持public、private、no-cache、no-store和max-age等参数配置;2.expires指定资源过期时间,但优先级低于cache-control;3.etag和…

    2025年12月20日 好文分享
    000
  • js怎样实现打字机效果 js打字机动画的4种实现方式

    要实现js打字机效果,核心在于控制文本逐字显示的速度和方式。方法包括:1. 使用setinterval + substring,通过定时截取字符更新显示内容,简单但控制力弱;2. requestanimationframe + 递归,利用浏览器重绘机制提升动画流畅度;3. promise + asy…

    2025年12月20日 好文分享
    000
  • js如何检测环境光 设备环境光线传感器API使用

    要检测javascript中的环境光,主要使用设备环境光线传感器api或摄像头估算亮度。首先判断浏览器是否支持ambientlightsensor api:1. 使用if (‘ambientlightsensor’ in window)检查支持性;2. 若支持,则创建传感器实…

    2025年12月20日 好文分享
    000
  • js如何实现图片镜像翻转 4种镜像处理方式玩转图像变换

    在js中实现图片镜像翻转主要通过canvas和css两种方式,具体步骤如下:1. 使用canvas时,水平翻转需调用ctx.scale(-1, 1)并平移原点至右侧;2. 垂直翻转使用ctx.scale(1, -1)并平移原点至下方;3. 同时水平与垂直翻转则设置ctx.scale(-1, -1)并…

    2025年12月20日 好文分享
    000
  • js怎样操作Web Serial API 串口设备通信的5个基础步骤

    处理 web serial api 的权限问题,需通过五个步骤:1. 使用 navigator.serial.requestport() 请求授权;2. 用户必须明确允许访问设备;3. 可用 retain 选项保存授权信息;4. 用 navigator.permissions.query() 检查权…

    2025年12月20日 好文分享
    000
  • JS怎么解析XMLHttpRequest 5步处理AJAX响应数据

    xmlhttprequest响应为空可能由服务器端错误、跨域问题、请求未完成、响应类型不匹配、网络问题、缓存问题或编码问题导致。1.检查服务器端是否返回正确数据,通过浏览器开发者工具查看状态码和响应体;2.确认是否存在跨域限制,需在服务器端配置cors头部;3.确保在readystate为4时才处理…

    2025年12月20日 好文分享
    000
  • js怎样检测移动端横竖屏 屏幕方向变化监听方案

    js可以检测移动端横竖屏。具体实现方案有三种:一是使用orientationchange事件,通过window.orientation的值判断方向,但兼容性略差;二是使用resize事件结合屏幕宽高比判断,横屏时宽度大于高度,竖屏则相反,兼容性更好但可能存在误判;三是结合matchmedia查询,使…

    2025年12月20日 好文分享
    000
  • React中怎么使用Lazy加载组件?

    react lazy加载组件通过react.lazy和suspense实现,可提升初始加载速度。使用react.lazy动态引入组件,结合suspense显示加载状态;判断是否成功可通过浏览器开发者工具观察network请求,若组件js文件在首次渲染时才加载则生效;失败处理需配合error boun…

    2025年12月20日 好文分享
    000
  • js怎样监听元素尺寸变化 ResizeObserver使用指南

    js监听元素尺寸变化的核心方法是使用resizeobserver,它通过回调函数在元素尺寸改变时执行操作。1. resizeobserver提供高效监听方式,避免传统window.onresize的性能问题;2. 用法简单,创建实例并指定回调函数后调用observe方法监听目标元素;3. 支持同时监…

    2025年12月20日 好文分享
    000
  • js中多个条件需要全部满足怎么写

    在 javascript 中判断多个条件是否全部满足的方法是使用逻辑与运算符 &&,其核心在于仅当所有条件都为 true 时,整体表达式才为 true。1. 使用 && 运算符连接多个条件判断,例如:if (condition1 && conditio…

    2025年12月20日 好文分享
    000
  • js如何实现异步延迟执行 异步延迟的3种实现方案

    异步延迟执行是通过settimeout、promise和async/await三种方式实现的,其中settimeout用于一次性延迟执行代码,例如settimeout(function() { console.log(“延迟2秒执行”); }, 2000); promise提…

    2025年12月20日 好文分享
    000
  • js怎样实现主题切换功能 深色浅色主题的3种切换方案

    实现主题切换的核心方法有三种:1.修改css类名,通过为body元素添加或移除类如.dark-theme实现样式变化;2.切换css文件,动态修改标签的href属性加载不同主题文件;3.使用css变量,在javascript中修改变量值以更新主题。以上方法均可结合localstorage保存用户选择…

    2025年12月20日 好文分享
    000
  • JavaScript怎样实现拖拽功能?

    实现javascript拖拽功能的核心是监听鼠标事件并实时更新元素位置,具体步骤如下:1. 监听mousedown事件以记录初始偏移量并开始拖拽;2. 在mousemove事件中根据偏移量和鼠标位置更新元素位置,并限制其在屏幕范围内;3. 通过mouseup或mouseleave事件结束拖拽并重置状…

    2025年12月20日 好文分享
    000
  • js调试debug工具使用_js调试debug方法全解析

    调试javascript代码需掌握浏览器开发者工具如chrome devtools,使用console、sources、network、elements面板监控代码执行、设置断点、查看网络请求和操作dom;采用断点调试、console.log()、debugger语句分析错误,结合source ma…

    2025年12月20日 好文分享
    000
  • js怎样检测网络带宽 js网络速度测试的3种测量方式

    js检测网络带宽的核心方法是1发起已知大小的文件请求并记录时间差,2使用fetch或xmlhttprequest实现,3通过文件大小除以耗时计算带宽,4影响因素包括延迟、缓存、服务器负载等,5优化方式为多次测试取平均值、避免缓存、使用更大文件,6其他方法如ping模拟、websocket测试也存在但…

    2025年12月20日 好文分享
    000
  • js如何解析PDF文件 前端PDF解析与渲染技术解析

    前端解析和渲染pdf文件主要依赖javascript库。常用的库包括:1.pdf.js,由mozilla维护,功能强大,支持复杂pdf格式,安全性高;2.pdfmake,适合生成简单pdf或在react项目中使用;3.react-pdf,基于react封装,便于集成。使用pdf.js时需引入库文件,…

    2025年12月20日 好文分享
    000
  • js如何生成甘特图 动态甘特图生成与更新技巧

    在js中生成甘特图推荐使用d3.js、chart.js、frappe gantt和bryntum gantt等库,动态甘特图需结合数据驱动与高效更新策略。1. d3.js是灵活性高但上手难的底层库,适合高度定制;2. chart.js简单易用但需扩展支持甘特图;3. frappe gantt专为甘特…

    2025年12月20日 好文分享
    000

发表回复

登录后才能评论
关注微信