• Linux 命令(212)—— ssh-add 命令



    大咖好呀,我是恋喵大鲤鱼。

    鄙人第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。

    1.命令简介

    ssh-add 将私钥身份添加到 OpenSSH 身份验证代理,从而提高 ssh(1) 的认证速度。

    ssh-add 向认证代理 ssh-agent(1) 添加私钥身份。当不带参数运行时,它将添加如下文件:

    ~/.ssh/id_rsa
    ~/.ssh/id_dsa
    ~/ssh/id_ecdsa
    ~/.ssh/id_ecdsa_sk
    ~/.ssh/id_ed25519
    ~/.ssh/id_ed25519_sk
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    加载私钥后,ssh-add 将尝试加载相应的证书,通过向私钥文件的名称追加 -cert.pub 来获得相应的证书。可选的文件名可以在命令行中给出。

    如果任何文件需要密码短语,ssh-add 将通过 tty 向用户请求该密码短语。如果给定了多个身份文件,ssh-add 将重试最后一个密码短语。

    身份验证代理必须正在运行,并且 SSH_AUTH_SOCK 的环境变量必须包含其套接字的名称以帮助 ssh-add 工作。

    2.命令格式

    ssh-add [-cDdKkLlqvXx] [-E fingerprint_hash] [-S provider] [-t life] [file ...]
    ssh-add -s pkcs11
    ssh-add -e pkcs11
    ssh-add -T pubkey ...
    
    • 1
    • 2
    • 3
    • 4

    3.选项说明

    -D
    	删除 ssh-agent(1) 中的所有密钥。
    -d
    	从 ssh-agent 中的删除密钥。
    -e 
    	删除 PKCS#11 共享库 pkcs11 提供的钥匙。
    -s 
    	添加 PKCS#11 共享库 pkcs11 提供的钥匙。
    -L
    	列出 ssh-agent(1) 中的公钥。
    -l
    	列出 ssh-agent(1) 中当前所代表的所有身份的指纹。
    -t 
    	对加载的密钥设置超时时间,超时 ssh-agent(1) 将自动卸载密钥。
    -X
    	对 ssh-agent 进行解锁。
    -x
    	对 ssh-agent 使用密码进行加锁。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    4.常用示例

    (1)开启 ssh-agent。

    默认操作系统是不开启 ssh-agent 的,需要手动打开。

    ssh-agent bash
    
    • 1

    (2)把私钥添加到 ssh-agent 中。

    ssh-add ~/.ssh/id_rsa
    Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
    
    • 1
    • 2

    (3)查看 ssh-agent 中当前所代表的身份的公钥。

    ssh-add -L
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCD2PJUqqNWDxX0DVV8tvY0Ia7Gbv5va2qSqRHjVYaNczd+ceP3jY2u3P4fQiC8guXRk59/iV2l2HMS0x/PHY5rN5PQLw+LDvDdV4xM6pON8mEv7sCZUdJrv+B9aCccl7WS/5BzsRd5MwH35e2bd843znRtRkYPPQq+kJGeFPtpmoJMt0hkLIH2V1Wjvg5ex/wFupvLmQ/f8gEkKUifFY8j43KrgdErVX5zQdfK9St1gajG78bAW93wUcYm/jMGo/W/hPa0B9QMmlucUtW75krcF3SRFyrsjO3lbzP8MjN1FWoXLCyrtOslcoGfWanpb4xm62GiIemcbU5HwU56klt /root/.ssh/id_rsa
    
    • 1
    • 2

    (4)列出 ssh-agent 中当前所代表的所有身份的指纹。

    ssh-add -l
    2048 SHA256:EZqVh3vljGdV+sOUj8z3ROcS8Vip0RiEZH6h0yLNq8I /root/.ssh/id_rsa (RSA)
    
    • 1
    • 2

    (5)从 ssh-agent 中删除密钥。

    ssh-add -d ~/.ssh/id_rsa.pub
    
    • 1

    (6)对 ssh-agent 进行加锁。

    ssh-add -x
    Enter lock password: 
    Again: 
    Agent locked.
    
    • 1
    • 2
    • 3
    • 4

    (7)对 ssh-agent 进行解锁。

    输入加密时使用的密码即可解密。

    ssh-add -X
    Enter lock password: 
    Agent unlocked.
    
    • 1
    • 2
    • 3

    参考文献

    ssh-add(1) - Linux manual page - man7.org

  • 相关阅读:
    【SpringBoot系列】Spring Boot+Redis 分布式锁:模拟抢单
    弘辽科技:玩转店铺标签,能让你首页流量快速起爆
    优先级队列的模拟实现
    tf.compat
    微服务 第一章 Java线程池技术应用
    Python3 数据结构
    LINQ to SQL语句之ADO.NET与LINQ to SQL
    【C++初阶-类和对象下】嗯...这样对劲多了
    为什么我推荐你使用 systemd timer 替代 cronjob?
    干货 | 科研人的KPI怎么算,H指数和G指数是什么
  • 原文地址:https://blog.csdn.net/K346K346/article/details/128199917