ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

SSH 密钥缓存管理:ssh‑add 命令完整详解(ssh‑agent 密钥加载实战)

SSH 密钥缓存管理:ssh‑add 命令完整详解(ssh‑agent 密钥加载实战) Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz81. 命令简介ssh-add 是一个用于管理 SSH 密钥缓存的命令行工具。它的主要功能是将用户的 SSH 私钥添加到 ssh-agent 守护进程的内存缓存中。ssh-agent 是一个在后台运行的程序用于存储解密的私钥这样用户在使用 SSH 连接时无需每次都输入密钥的密码短语从而简化并加速认证流程。核心作用将解密的私钥加载到内存中供 ssh-agent 管理实现 SSH 会话的免密码短语认证。2. 语法格式基本语法bash运行ssh-add [选项] [文件...]详细语法bash运行ssh-add [-cDdKkLlXx] [-E 指纹哈希算法] [-t 有效期] [文件...]PKCS#11 相关语法bash运行ssh-add -s pkcs11_provider_library ssh-add -e pkcs11_provider_library参数说明[文件...]指定要加载的私钥文件路径。如果不指定文件默认会尝试加载/.ssh 目录下的所有标准私钥文件如 id_rsa, id_ecdsa, id_ed25519, id_dsa。3. 常用选项及说明表格选项说明-l列出指纹。显示 ssh-agent 缓存中所有私钥对应的公钥指纹默认使用 SHA256 哈希。这是最常用的查看缓存密钥的命令。-L列出公钥。显示 ssh-agent 缓存中所有私钥对应的完整公钥内容。-d删除指定密钥。从 ssh-agent 缓存中移除指定的私钥文件。-D删除所有密钥。清空 ssh-agent 缓存中的所有密钥。-x锁定代理。使用密码对 ssh-agent 进行加密锁定锁定后任何操作如添加密钥、建立连接都需要先解锁。-X解锁代理。输入密码解锁被 -x 选项锁定的 ssh-agent。-t设置超时时间。为添加的密钥设置一个缓存有效期。超过此时间后密钥会自动从代理中移除。时间格式可以是秒数或如 2h30m 的时间字符串。-c要求确认。添加密钥时设置每次使用该密钥进行认证前都需要通过一个外部程序如弹窗进行用户确认。-E指定指纹哈希算法。与 -l 选项一起使用指定显示指纹时使用的哈希算法如 md5 或 sha256。例如ssh-add -l -E md5。-K加载密钥到钥匙串 (macOS)。在 macOS 上此选项会将密钥的密码短语同时存储到用户的钥匙串中实现系统重启后仍能自动加载。-s添加 PKCS#11 共享库提供的密钥。添加来自 PKCS#11 硬件令牌如智能卡的密钥。-e删除 PKCS#11 共享库提供的密钥。从代理中移除来自指定 PKCS#11 库的密钥。4. 示例用法示例 1添加默认密钥添加/.ssh 目录下所有默认的私钥如 id_rsa, id_ed25519。系统会提示你输入每个密钥的密码短语。bash运行ssh-add示例 2添加特定密钥文件添加指定的私钥文件/.ssh/my_private_key。bash运行ssh-add ~/.ssh/my_private_key示例 3查看已缓存的密钥列出当前 ssh-agent 中所有密钥的指纹最常用。bash运行ssh-add -l以 MD5 格式较旧格式显示指纹bash运行ssh-add -l -E md5列出完整的公钥内容bash运行ssh-add -L示例 4删除密钥从缓存中删除特定的密钥文件。bash运行ssh-add -d ~/.ssh/id_rsa_old清空 ssh-agent 中的所有密钥。bash运行ssh-add -D示例 5设置密钥有效期添加一个密钥并设置其在缓存中保留 2 小时。bash运行ssh-add -t 2h ~/.ssh/id_ecdsa示例 6锁定与解锁代理使用密码锁定你的 ssh-agent防止他人使用。bash运行ssh-add -x解锁被锁定的 ssh-agent。bash运行ssh-add -X5. 注意事项ssh-agent 进程必须运行ssh-add 命令本身不启动 ssh-agent。通常 ssh-agent 会在图形化登录会话或终端初始化脚本中自动启动。你可以通过 eval $(ssh-agent -s) 来手动启动它。 缓存位于内存中添加的密钥存储在 ssh-agent 进程的内存空间。这意味着 重启或注销后失效系统重启或用户注销后缓存会被清空需要重新添加密钥。 安全性相比将未加密的私钥存储在磁盘上这种方式更安全因为内存中的密钥更难被非法提取。 默认密钥路径不带参数执行 ssh-add 时它只会尝试加载/.ssh 目录下默认命名的私钥如 id_rsa。非标准命名的密钥需要使用完整路径指定。 -K 选项的平台特异性-K 选项主要用于 macOS 系统用于与钥匙串集成。在 Linux 或其他系统上可能无效或行为不同。 调试如果遇到问题可以添加 -v详细选项来获取更多输出信息帮助诊断。 环境变量ssh-add 通过环境变量 SSH_AUTH_SOCK 来定位 ssh-agent 的通信套接字。确保此变量已正确设置。
返回列表