zoukankan      html  css  js  c++  java
  • 使用ssh-agent管理密钥

    ssh-agent是ssh代理程序,使用ssh-agent可以方面管理私钥。
    ssh-agent主要使用在如下两个场景:
    1.使用不同的密钥连接不同主机,每次连接都要指定私钥;
    2.当私钥设置了密码,每次使用认证时都需要输入密码,非常麻烦。

    启动ssh-agent

    启动ssh-agent有两种方法:
    ssh-agent $SHELL
    eval 'ssh-agent'

    • ssh-agent $SHELL
      这种方式会在当前shell中启动一个默认shell作为当前shell的子shell,ssh-agent程序会在子shell中运行。$SHELL变量名代表系统的默认shell,如果自己知道系统使用的是哪一种shell也可以直接指定,如ssh-agent bash,ssh-agent csh.退出当前子shell使用exit。使用pstree查看进程树。

    • eval 'ssh-agent'
      这种方式不会启动一个子shell,而是直接启动一个ssh-agent进程,使用ssh-agent -k来关闭代理。如果退出了当前bash,再使用ssh-agent -k无法关闭代理。当然,第一种方式可是可以使用ssh-agent -k来关闭代理的。

    添加密钥

    使用如下命令将私钥添加到代理中

    ssh-add ~/.ssh/id_rsa_test
    

    id_rsa_custom是指私钥,上述命令需要在已经启动了ssh-agent的状态下使用。

    选择对应的私钥

    这种情况是我们在创建密钥对时手动指定了密钥名称,而不是使用默认的名称。分为以下几步:

    • ssh-agent bash
      启动代理程序

    • ssh-add ~/.ssh/id_rsa_test
      添加密钥

    • ssh root@192.168.0.45
      连接远程机器

    免去输入私钥密码

    这种情况是我们在创建密钥对时指定了密钥的密码,解决过程分为几步。

    • ssh-agent bash
      启动代理程序

    • ssh-add ~/.ssh/id_rsa_test
      将密钥加入代理,此时会提示输入密钥的密码

    • ssh -i ~/.ssh/id_rsa_test root@192.168.0.45
      连接远程机器

    相关命令

    ssh-add -l	//查看代理中的私钥
    ssh-add -L	//查看公钥
    ssh-add -d /root/.ssh/id_rsa_test	//移除密钥
    ssh-add -D	//清空所有私钥
    ssh-add -x	//对代理进行加锁,加锁后仍然需要指定密钥或者密码等
    ssh-add -X	//对代理进行解锁
    
  • 相关阅读:
    【POJ 3669】Meteor Shower
    【BZOJ 1003】[ZJOI2006]物流运输trans
    【POJ 3662】Telephone Lines
    【UVa 1593】Alignment of Code
    【POJ 3661】Running
    [HNOI2015]开店 简要题解
    trie上构建后缀数组
    [CQOI2017]老C的方块
    [JSOI2018]潜入行动 (树形背包)
    李超线段树 总结
  • 原文地址:https://www.cnblogs.com/suraer/p/8550004.html
Copyright © 2011-2022 走看看