前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SSH 密钥管理问题:SSH 密钥管理不当,导致安全风险

SSH 密钥管理问题:SSH 密钥管理不当,导致安全风险

原创
作者头像
是山河呀
发布于 2025-02-06 07:03:53
发布于 2025-02-06 07:03:53
2510
举报
文章被收录于专栏:linux运维linux运维
1. 生成 SSH 密钥对

生成 SSH 密钥对时,确保使用强密码保护私钥。

  • 生成 RSA 密钥对: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 按提示输入保存密钥的文件路径和密码。
  • 生成 Ed25519 密钥对: ssh-keygen -t ed25519 -C "your_email@example.com" 按提示输入保存密钥的文件路径和密码。
2. 保护私钥

确保私钥文件的权限设置正确,防止未授权访问。

  • 检查私钥文件权限: ls -l ~/.ssh/id_rsa 确保文件权限为 600: chmod 600 ~/.ssh/id_rsa
  • 使用 ssh-agent 管理私钥: 使用 ssh-agent 可以简化私钥的使用,避免每次连接时都需要输入密码。
    • 启动 ssh-agent: eval "$(ssh-agent -s)"
    • 添加私钥到 ssh-agent: ssh-add ~/.ssh/id_rsa
3. 配置公钥认证

将公钥添加到目标主机的 ~/.ssh/authorized_keys 文件中,启用公钥认证。

  • 复制公钥到目标主机: 使用 ssh-copy-id 命令将公钥复制到目标主机: ssh-copy-id user@target_host
  • 手动添加公钥: 将公钥内容复制到目标主机的 ~/.ssh/authorized_keys 文件中: cat ~/.ssh/id_rsa.pub | ssh user@target_host "cat >> ~/.ssh/authorized_keys"
4. 禁用密码认证

为了提高安全性,建议禁用密码认证,仅使用公钥认证。

  • 编辑 SSH 配置文件: 编辑 /etc/ssh/sshd_config 文件,禁用密码认证: PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
  • 重启 SSH 服务: 重启 SSH 服务以应用更改:
    • Debian/Ubuntu: sudo systemctl restart ssh
    • CentOS/RHEL: sudo systemctl restart sshd
5. 定期轮换 SSH 密钥

定期轮换 SSH 密钥可以减少长期使用同一密钥带来的安全风险。

  • 生成新的密钥对: 按照上述步骤生成新的 SSH 密钥对。
  • 更新目标主机上的公钥: 将新的公钥添加到目标主机的 ~/.ssh/authorized_keys 文件中,然后删除旧的公钥。 cat ~/.ssh/new_id_rsa.pub | ssh user@target_host "cat >> ~/.ssh/authorized_keys" ssh user@target_host "sed -i '/old_public_key/d' ~/.ssh/authorized_keys"
  • 更新本地私钥: 删除旧的私钥文件,使用新的私钥文件。 rm ~/.ssh/id_rsa mv ~/.ssh/new_id_rsa ~/.ssh/id_rsa

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux远程访问及控制(SSH)
1、ssh协议:用于远程登录,端口号:22/tcp 配置文件: 1)服务器端口:/etc/ssh/sshd_config 2)客户端 :/etc/ssh/ssh_config 2、服务器监听选项: UseDNS no :禁用DNS反向解析 PermitRootLogin :允许Root登录 PermitEmyptPasswords:是否允许空密码 AllowUsers/DenyUsers: 允许/拒绝用户访问,不可同时使用,可用@制定允许远程主机 PasswordAuthentication: 启用密
L宝宝聊IT
2018/06/20
4.2K0
ssh password and passphrase
ssh password and passphrase 1、ssh-keygen -t rsa     采用默认路径,输入passphrase。  2、scp /root/.ssh/id_rsa.pub remote:/root/.ssh/authorized_keys     需要输入root在远程机器的帐号密码  3、eval `ssh-agent`  4、ssh-add     输入之前输入的passphrase。  说明  1,2两步是用来生成rsa公钥/私钥对的。  第一步产生了密钥对,id_rs
joshua317
2018/04/10
5.1K2
SSH密钥登录问题
默认情况下,密钥会保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub (公钥)。
是山河呀
2025/02/03
1970
快速添加SSH公钥进行免密登录
在需要连接其他人服务器或者其他的场景下,忘记密码或者不方便提供密码的时候可以通过 SSH 免密码进行登录。
沈唁
2025/01/14
970
快速添加SSH公钥进行免密登录
Linux系列 | SSH 如何使用密钥登录服务器
SSH 默认采用密码登录,这种方法有很多缺点,简单的密码不安全,复杂的密码不容易记忆,每次手动输入也很麻烦。密钥登录是更好的解决方案。
Tinywan
2021/01/28
70.8K0
解读 ssh-keygen 命令及其工作原理
ssh-keygen 是用于生成、管理和转换 SSH 密钥的工具。SSH (Secure Shell) 是一种安全的网络协议,广泛用于在计算机之间进行加密的远程登录和数据传输。而 SSH 密钥对是保证这种通信安全性的核心机制。了解 ssh-keygen 的原理、用途,以及如何正确地使用它,对于任何计算机开发者和系统管理员来说,都是非常重要的技能。下面将详细解读 ssh-keygen 命令的用途、工作原理和实际应用。
编程小妖女
2024/12/17
3720
解读 ssh-keygen 命令及其工作原理
003.SSH密钥对登陆
在ssh-client将公钥导入至[需要登陆的用户家目录]/.ssh/authorized_keys
木二
2019/07/26
1.1K0
使用SSH服务远程登录Linux主机
SSH是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。它是以密文传输来保证安全。一般情况下在装Linux系统的过程中是默认安装的。
星哥玩云
2022/07/25
4K0
Linux多台服务器共用密钥ssh自动登陆
最近在研究自动登陆的linux服务器的东西。本篇为关于ssh的秘钥自动登陆。 update:2014.3.9 4:21 PM,昨晚写完这篇之后,发现有篇关于ssh认证的完整描述。伤心了。http://www.linuxidc.com/Linux/2011-08/39871.htm
星哥玩云
2022/06/30
2.7K0
实现SSH无密码自动登录
在使用ssh登陆服务器的时候很蛋疼的事是每次登陆的时候都要输入服务器密码,而且为了安全性,密码一般都不短,大概都得十几位的样子,一不小心输错了还得重来,十分麻烦。所以实现SSH的自动登陆是一件非常方便的事情,避免了恶心蛋疼而且无聊重复的输密码环节。
mythsman
2022/11/14
1.4K0
【 Linux学习】SSH连接时出现Host key verification failed的原因及解决方法以及ssh-keygen命令的用法
用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。
全栈程序员站长
2022/11/03
8.6K0
设置 SSH 通过密钥登录
首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令:
星辰sea
2022/10/29
2.2K0
SSH远程连接服务安装与介绍
SSH( Secure Shell ,安全外壳协议 )命令是openssh套件中的客户端连接工具,采用了非对称加密算法aymmetric encryption algorithm实现安全的远程登录服务器;
全栈工程师修炼指南
2022/09/28
2.5K0
SSH远程连接服务安装与介绍
Linux设置SSH密钥以及别名无密码登录
Linux设置SSH密钥以及别名无密码登录 本文基于S:Lentos release 7.2&C:MacOS 进行的学习记录,初衷是解决多个服务器总要找IP地址和不同服务器有多个不同密码的问题,没想到这么一个简单的问题却弄了小半天。 首先生成使用密钥对 使用ssh-keygen生成密钥对 生成的文件默认保存在~/.ssh/目录下,一般会用到下面三个命令: -t 指定密钥类型,支持“dsa”,”ecdsa”,”ed25519”,”rsa”,默认类型为“rsa”user@client:.ssh ssh
用户1774772
2019/02/12
5.4K0
linux如何设置无密码SSH登录
Secure Shell (SSH) 是一种加密网络协议,用于客户端和服务器之间的安全连接,支持各种身份验证机制。两种最流行的机制是基于密码的身份验证和基于公钥的身份验证。 在本教程中,将向你展示如何设置基于 SSH 密钥的身份验证以及如何在不输入密码的情况下连接到你的 Linux 服务器。 设置 SSH 无密码登录 要在Linux中设置无密码 SSH 登录,你需要做的就是生成一个公共身份验证密钥并将其附加到远程主机~/.ssh/authorized_keys文件中。 以下步骤将描述配置无密码 SSH 登录
入门笔记
2022/06/02
9.5K0
linux如何设置无密码SSH登录
Linux服务器之SSH 密钥创建及密钥登录设置
执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会提示。输入密钥的密码的(如下图中红色箭头处,输入两次相同的,即是又一次确认密码),不需要密码直接回车就行。
兮动人
2021/06/11
8K0
Linux服务器之SSH 密钥创建及密钥登录设置
给你CVM服务器加把锁,如何使用SSH密钥
SSH或安全shell是用于管理服务器和与服务器通信的加密协议。使用Ubuntu服务器时,您可能会将大部分时间花在通过SSH连接到服务器中。
陈树丶
2018/07/20
1.6K0
如何在 Linux 中设置 SSH 无密码登录?
SSH(Secure Shell)是一种安全网络协议,用于在不安全的网络上安全地进行远程登录和执行命令。在 Linux 系统中,使用 SSH 可以方便地远程连接到其他计算机,并且还可以通过配置无密码登录来提高操作的便利性和安全性。本文将介绍如何在 Linux 中设置 SSH 无密码登录。
网络技术联盟站
2023/09/01
3.9K0
如何在 Linux 中设置 SSH 无密码登录?
SSH 密钥类型
GitHub 改变了他们的安全协议,不再允许使用使用 SHA-1 加密算法的 RSA 密钥进行访问,而我目前使用 ssh 默认策略生成的就是这种类型的密钥,结果就是无法提交代码。
宋天伦
2023/10/21
7070
011SSH免密码登陆
单向无密码访问远程服务器操作比较简单,比如服务器A需要无密码访问服务器B(A–>B),那么只需要在服务器A生成密钥对,将生成的公钥上传到服务器B的相关用户目录下的.ssh目录中(没有的话手动创建,注意,它的目录权限是700),并将公钥文件名称改为authorized_keys(注意,这个文件的权限应该是644),如果已存在authorized_keys文件,则把id_rsa.pub的内容追加到authorized_keys文件中。请注意.ssh目录及authorized_keys文件的权限,权限不符,会使配置无效。具体操作如下:
上善若水.夏
2018/09/28
1.2K0
相关推荐
Linux远程访问及控制(SSH)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档