SSH免密登陆的原理与应用

linux服务器ssh免密登陆 针对某些服务(例如:ansible、部分大数据服务等)需要访问其他服务器,输入命令的访问方式对程序来说不是很友好,所以有必要设置服务器间免密登陆。可通过ssh-keygen命令生成公钥及私钥 执行ssh-keygen命令,一路敲回车即可。 完成后,会在当前登陆用户的家目录下生成一个ssh的隐藏目录,公钥及私钥默认生成到改路径下。例如:如果是root用户的话,路径为:。 至此即可通过命令免密登陆。将公钥添加到authorized_keys文件,如果该文件不存在,则需要在公钥目录下手动创建一个authorize 阅读详情
AI摘要

本文介绍了Linux中SSH免密登录的原理与应用。SSH免密登录基于非对称加密和公钥认证,具有安全性高、效率高的优点。应用步骤包括在客户端生成密钥对、将公钥复制到远程服务器并配置、最后实现免密登录,同时要确保服务器相关目录和文件权限正确。

前言

在Linux中,ssh是我们常用的远程登录方式。

但是,你有没有觉得每次登录时都要输入密码很麻烦。

尤其是“安全系数高”的密码…

那么有没有什么办法可以提高登录效率呢?

当然有,那就是ssh免密登录!

本文就来聊一聊ssh免密登录的原理与应用。

原理

SSH 免密登录的核心原理是非对称加密。

它基于公钥认证,使用一对加密密钥(公钥与私钥)来确保只有拥有正确私钥的客户端才能成功登录。

它具有以下优点:

  • 安全性高:私钥保存在客户端计算机,只有持有正确私钥的客户端才能成功认证。
  • 效率高:不需要在每次连接时输入密码,并且降低了密码泄露的风险。

以下是 SSH 免密登录的详细工作原理:

在这里插入图片描述
结合上图,当客户端使用 ssh username@remote_host 进行连接时,会经历以下步骤:

  1. 连接建立:客户端与服务器建立连接,服务器要求客户端进行身份验证。

  2. 公钥验证:

    • 客户端提供它的公钥 ID,告诉服务器它打算使用哪个公钥进行认证。
    • 服务器在 ~/.ssh/authorized_keys 文件中查找是否包含该公钥。
  3. 挑战-响应:

    • 如果服务器找到了匹配的公钥,它会生成一个随机数(称为挑战),并使用该公钥加密这个挑战,然后将加密的挑战发送给客户端。
    • 客户端使用它的私钥解密这个挑战。
  4. 响应验证:

    • 客户端将解密后的挑战返回给服务器。

    • 服务器验证返回的挑战是否正确。

    • 如果正确,则身份验证通过,客户端可以登录服务器。

应用

通过正确配置和权限设置,可以实现安全可靠的免密登录,步骤如下:

1. 生成密钥对

在客户端计算机上,使用 ssh-keygen 生成一对密钥:

ssh-keygen -t rsa

一路按回车键,最终会在~/.ssh/目录下生成两个文件:

  • 私钥:通常命名为 id_rsa。
  • 公钥:通常命名为 id_rsa.pub。

2. 配置公钥

将公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中:

ssh-copy-id username@remote_host

3. 登录

接下来我们就可以在客户端上使用 ssh username@remote_host进行免密登录。

注意:

为了提高安全性,需要确保远程服务器上的 ~/.ssh 目录和 authorized_keys 文件具有正确的权限:

ssh username@remote_host
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

希望本文对大家有帮助。
本文首发于微信公众号《Linux在秋名山》,欢迎大家关注~

Hadoop | 集群配置(二)SSH免密登陆原理以及操作 | 公钥与私钥 参考资料 视频资料 一、原理分析 SSH ,全称SecureShell ,中文称为安全外壳协议。百度百科 SSH免密登陆原理图: ssh免密登陆最常用的一种加密算法是:rsa算法:[百度百科],本篇文章是基于该算法进行免密登陆的。 首先通过原理图可以总结出以下几个要点:(以服务器A SSH免密登陆 服务器B 为例) A 生成密钥对,即公钥A和私钥A A将自己的公钥A发送给B 此时B将公钥A保存在~/.ssh下的 authorized_keys 文件中 当A向B发送ssh远程连接时,A将通过私钥A加 阅读详情

相关推荐

Windows SSH 应用

SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地进行远程登录和其他网络服务。在 Windows 环境下,它主要用于安全地连接到远程服务器、传输文件等操作,通过加密机制确保数据传输的保密性、完整性和真实性。windows下默认存储路径如下。

Jiuri的博客 1610

SSH免密登录原理

大数据集群中ssh免密登录原理

ZJ_comeon的博客 6089

Linux取证——SSH免密登录

通过SSH实验远程登陆有两种方式:口令登录和公钥登录。本文将从这两种登陆方式的原理展开来讲解如何实现SSH免密登录服务器。

记录并分享学习安全的知识点.. 2365

ssh工作流程及其原理——ssh免密登录

ssh工作流程及其原理、对称加密、非对称加密、ssh免密登录

阿瑾的博客 1649

CANoe UDS $27服务DLL生成实战:从工程配置到算法修改全流程

本文详细介绍了在Vector CANoe中为UDS(统一诊断服务)的$27安全访问服务生成定制化DLL(动态链接库)的全流程。从定位官方参考工程、配置Visual Studio开发环境,到深入解析核心的GenerateKeyEx函数接口,并重点演示了如何修改和实现自定义的种子-密钥安全算法,最终完成DLL的编译、部署与CANoe集成测试,为汽车电子诊断开发提供实战指导。

star5的专栏 534

Zabbix安装与部署 系统环境:centos7.0

Zabbix安装与部署 系统环境:centos7.0

weixin_42485027的博客 2600

ssh免密登录的原理RSA非对称加密的理解

私钥保留在客户端,公钥复制到服务器上,服务器使用公钥加密挑战,客户端使用私钥解密并返回挑战的解密结果,服务器验证解密结果与之前生成的挑战是否匹配,从而确认客户端的身份。如果找到匹配的公钥,服务器会使用该公钥对随机生成的挑战进行加密,并将加密后的挑战发送回客户端。2. 复制公钥到服务器:将客户端生成的公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中。5. 解密挑战:客户端接收到服务器发送的加密挑战后,使用保存在客户端的私钥对其进行解密。SSH免密登录是通过使用公钥加密技术实现的。

宇飞林海的博客 1453

GD32H7系列SRAM优化配置实战指南

本文详细解析了GD32H7系列MCU的SRAM架构,包括ITCM、DTCM、AXI SRAM等关键内存区域的特点与性能差异。通过实战指南,指导开发者如何通过配置寄存器和链接脚本,优化内存布局以提升系统性能,并重点探讨了DMA操作与CPU缓存一致性的解决方案,帮助充分发挥GD32H7的高性能潜力。

weixin_29169899的博客 518

SSH秘钥认证原理-密码登录&免密登录

SSH秘钥原理-免密登录

qq_43375416的博客 3661

迪文DGUSII串口屏中文显示实战:手把手教你制作16x16点阵字库

本文提供了一份迪文DGUSII串口屏16x16点阵中文字库制作的完整实战指南。从显示原理、字体选择与参数设置,到使用FontLib Make工具生成字库文件,再到部署、调用及存储空间优化,手把手教你解决中文显示难题,确保界面文字既美观又稳定。

weixin_29190573的博客 154

基于 Vivado HLS 的 AC97 音频系统设计

介绍一种基于 FPGA 的 AC97 音频系统设计。系统的核心部件采用 Xilinx Atlys 的板载 Spartan6 XCSLX45 芯片,使用的工具为 Xilinx 的高层 次 综 合 技 术 Vivado HLS。首先使用 C /C + + 代码编写的算法描述系统的 FIR 滤波器; 然后按 照 Vivado HLS 编译工具的规范,将程序代码转换为 RTL 模型,快速、直接地生成对 应左右声道的 FIR IP 核和综合结果; 再结合互连的 MicroBlaze 处理器 IP 核,处理 一段立体声

qq_43416206的博客 326

Ssh远程登陆服务及xshell免密登陆

然后将自己的公钥发送给服务器端,并将发送的公钥发送到服务器端的要登陆用户的家目录下的.ssh/下,命名为authorized_keys,使用ssh-copy-id 用户名@服务器IP地址,可以直接在服务器端用户家目录下.ssh/下创建公钥authorized_keys。客户端输入密码,并通过公钥将密码进行加密传输给服务器端,服务器端使用自己的私钥对加密的密码进行解析,将解析后的密码和自己设置的密码进行对比,如果一致建立联系,如果不同,进行丢弃。④点击属性,点击公钥,建立文本将公钥复制;

2305_79537892的博客 599

华为OD机试 - 名字的漂亮度(Java 牛客练习题)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。给出多个字符串,计算每个字符串最大可能的“漂亮度”。第一行一个整数N,接下来N行每行一个字符串。数据范围:输入的名字长度满足。每个字符串可能的最大漂亮程度。

学Java,找哪吒 1786

科普扫盲---ssh免密登陆(ssh的一些小秘密)

ssh协议和tcp/ip 协议一样非常的重要,那么,如何使用这个ssh呢?这个协议到底有什么用处呢? 一, ssh协议是什么 ssh是secure SHell的简写,意思为安全的shell,中文也叫安全的外壳协议(是不是比较喜感的一个名称?),那,既然都是shell了,自然是有shell的那些特征啦。 SSH 主要由三部分组成: 传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 S

m0_67402731的博客 7314

Spring AI 实战:第五章、Spring AI本地模型部署之省钱小能手

白嫖的快乐你想象不到经过这番折腾,我们成功实现了零成本使用大模型完全本地运行保障隐私可视化访问Java生态无缝集成但可能有的小伙伴要吐槽,怎么换个底层模型这次就新建一个工程了呢?不能在以前的工程上开发吗?这样也太不优雅了吧~,我知道你很急,但先别急,等下一章节再来解决这个问题。为什么程序员特别喜欢Ollama?因为它就像一只温顺的羊驼——不花钱还能24小时产出代码!

liaokailin的专栏 922

【QNX+Android虚拟化方案】136 - QNX 侧 Coredump 文件解析

【QNX+Android虚拟化方案】136 - QNX 侧 Coredump 文件解析

|~~~热爱生活、努力学习的小伙汁~~~| 1908

总结ssh建立原理2.配置两台主机的远程连接实现免密登陆

无

qq_53292083的博客 394

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

关于ssh加密方式的理解

最近公司服务器被挖矿,所以更换了ssh的连接方式,从之前的密码登陆更换为密钥登陆方式,且禁止了密码登陆。所以在配置这个密钥的过程中,顺带了解了些ssh的原理和相关知识。通用的开源 1、ssh是什么,为什么需要ssh,ssh用在哪里 1)ssh是一种协议标准,也叫做安全外壳协议,主要为远程登录会话和其他网络服务提供安全性的协议。全称为Secure SHell,本质上是进行加密的shell。它既可...

weixin_30492047的博客 541

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux SSH免密登陆

SSH是一种网络协议,用于计算机之间的加密登录,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案。Linux常用OpenSSH。 使用SSH协议,客户端需要安装openssh-clients,服务端需要安装openssh-server(系统默认安装好了)。 本文使用CentOS7系统,并用root用户登陆,服务端需要保证/etc/ssh/sshd_config 的配置正确,一些云服务器默认是不允许ROOT用户远程登陆的。 # 是否允许以root用户身份登录,默认可以 Permit..

CodingSoldier的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SSH免密登陆配置

SSH免密登陆配置 主机为Windows10系统,虚拟机中装的是ubuntu,实现win10通过ssh连接ubuntu。 win10用户为Administrator,ip为192.168.1.5 ubuntu用户为lin,ip为192.168.5.128 首先进行SSH连接 新装的Ubuntu,所以先查看一下当前的SSH服务器是否存在 sudo service sshd status #管...

Lin_Xiao_Dai的博客 459

SSH passwordless login(免密登陆)

linux,windows 都一样。 下面以windows为例: 生成密钥对 $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/user/.ssh/id_rsa): ./id_rsa_ss1 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identifi

逐月 5517

ssh免密登陆

服务器使用公钥对用户发来的加密字符串进行解密,得到的解密字符串如果与第一步中发送给客户端的随机字符串一样,那么判断为登录成功。ssh密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到密钥对。用户收到远程服务器发来的字符串,使用与远程服务器公钥配对的私钥对字符串进行加密,再发送给远程服务器。远程服务器持有公钥,当有用户进行登录,服务器就会随机生成一串字符串,然后发送给正在进行登录的用户。上传到OpenStack后,主机名会自动添加.novalocal后缀,导致免密登录失效。

Pythonwudud的博客 1933

Hadoop集群搭建(二)——Linux系统SSH远程双向免密登陆

我们在虚拟机中经常用ssh通过 主机名 或者 ip 登陆另一台虚拟机进行操作,但是每次登陆都需要输入密码,不方便团队间的合作开发,所以我们可以设置免密登陆,下次登陆其他虚拟机设备时就不需要再输入密码了 要了解双向免密登陆之前,首先学会单向的免密登陆 ...

小袁同学的博客 2847

VSCode 的 Remote-SSH 免密登陆

使用 vscode 的 remote - ssh 插件远程服务器,可以用来远程开发,本文主要说明如何使用 remote - ssh 的免密登陆方法。

xhsdnn的专栏 3393
上一篇: GDB基本使用指南
下一篇: GDB调试进阶
Linux在秋名山
博客等级 码龄9年 225粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux在秋名山

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值