注: 因为在ssh-agent异常关闭或者新开窗口是会导致ssh-add找不到私钥,导致添加的私钥无效,所以下面使用keychain管理

ssh-add 参数

-l

查看代理中的私钥

-L

查看代理中私钥对应的公钥

-D

移除所有代理中的私钥

-x

锁定ssh代理  需要指定密码

-X

解锁ssh代理

ssh-agent是代理,帮我们管理私钥,当创建的私钥与默认不一样的时候,通过ssh-agent管理

启动

ssh-agent $SHELL        #创建一个子bash,ssh-agent运行在子bash中,子bash退出,代理关闭
eval `ssh-agent` #单独启动了一个 ssh-agent程序,关闭使用 ssh-agent -k

关闭

ssh-agent -k

当创建的私钥不是默认名称时,ssh无法直接登陆,ssh默认使用默认私钥

[root@2-128 .ssh]# ll /root/.ssh/
total 12
-rw------- 1 root test1 1679 Nov 18 20:31 id_rsatest
-rw-r--r-- 1 root test1 392 Nov 18 20:31 id_rsatest.pub [root@2-128 .ssh]# ssh-copy-id -i /root/.ssh/id_rsatest.pub -p1210 root@106.13.61.137 #当ssh登录时还是需要密码
[root@2-128 .ssh]# ssh -p1210 root@106.13.61.137
root@106.13.61.137's password: [root@2-128 .ssh]# #还需要指定私钥 [root@2-128 .ssh]# ssh -p1210 -i /root/.ssh/id_rsatest root@106.13.61.137
[root@bdserver ~]#

使用ssh-add将私钥添加到代理程序中,再次直接登录就ok了

[root@2-128 .ssh]# eval `ssh-agent`
Agent pid 26764 [root@2-128 .ssh]# ssh-add /root/.ssh/id_rsatest
Identity added: /root/.ssh/id_rsatest (/root/.ssh/id_rsatest)
[root@2-128 .ssh]#
[root@2-128 .ssh]# ssh -p1210 root@106.13.61.137
[root@bdserver ~]# logout
Connection to 106.13.61.137 closed.

5. keychain 管理ssh-agent

1.安装

cd /root && git clone https://github.com/funtoo/keychain.git
cd /root/keychain && make && mv keychain /usr/bin/ && source /etc/profile

2.keychain的一些参数

keychain -k mine

只停止 keychain 启动的代理程序

keychain /root/.ssh/id_rsa

添加私钥到代理

keychain --clear

清理所有秘钥

keychain --clear /root/.ssh/id_rsa

清理 id_rsa 这个私钥

3.配置环境变量使代理永久生效

将下面这句,配置到环境变量,我使用的是zsh

vim /root/.zshrc 配合到末尾即可

eval `keychain --eval --agents ssh id_rsa_mayun`
eval `keychain --eval --agents ssh id_rsa`

这里的意思是将id_rsa_mayun 和is_rsa 私钥 添加到ssh-agent中管理

注:

    1. 只要环境变量有效,ssh代理和添加的私钥就不会失效
    2. 使用这种方法,清理,添加秘钥均需要在环境变量中操作.好处是保证了代理的长期有效

ssh-add和ssh-agent的更多相关文章

  1. SSH 协议的 ssh StrictHostKeyChecking

    项目的SFTP用到了这个参数: @Override public PooledObject<ChannelSftp> makeObject() throws Exception { JSc ...

  2. [SSH] Intro to SSH command

    Create an ssh key: ssh-keygen Copy an SSH key to a remoate server: ssh-copy-id root@104.197.227.8 // ...

  3. ssh升级以及ssh: symbol lookup error: ssh: undefined symbol: EVP_aes_128_ctr错误处理

    1.解压安装openssl包:(不能卸载openssl,否则会影响系统的ssl加密库文件,除非你可以做两个软连接libcryto和libssl) # tar -zxvf openssl-1.0.1.t ...

  4. 【转】linux下安装ssh服务器端及ssh的安全配置

    一.在服务器上安装ssh的服务器端. $ sudo apt-get install openssh-server 2. 启动ssh-server. $ /etc/init.d/sshrestart 3 ...

  5. [SSH服务]——一个SSH无密码登陆实验

    实验拓扑图 实验描述 机房内有两台服务器: (1)B服务器10.0.10.158,充当Web服务器,有普通用户user_00 (2)C服务器10.0.10.191,充当Mysql服务器,有普通用户us ...

  6. Hadoop SSH+IP、SSH+别名 免密登录配置

    1.为什么要进行 SSH 无密码验证配置? Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个Da ...

  7. 第1章 ssh命令和SSH服务详解

    基础服务类系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种 ...

  8. 通过Obfuscated ssh避免时不时ssh连接不畅的问题【转】

    众所周知的原因,为了能流畅的使用google.使用某些“不存在”的网站,我们一般都是需要通过某些不方便光明正大说明使用用途的技术.比如通过ssh tunnel,这是最简单的,也是用得最多的. 不过,这 ...

  9. Linux中ssh介绍与ssh+key密钥登陆部署

    环境内核信息: [root@zabbix- ~]# uname -a Linux zabbix- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 x86 ...

  10. Linux之间配置SSH互信(SSH免密码登录)

    为简化SSH过程,采用证书方式,免去SSH登入时需要输入账号密码的过程,具体操作如下: 一.在SSH服务器所在机器上 1.以root用户登录,更改ssh配置文件 /etc/ssh/sshd_confi ...

随机推荐

  1. 【MySQL】:事务四大特性与隔离级别

    目录 一.事务的概念 二.事务的四大特性 1.原子性 2.一致性 3.隔离性 4.持续性 三.事务语句 1.开启事务:start transaction 2.事务回滚:rollback 指定回滚点 3 ...

  2. Java实现生产者消费者(一)

    问题描述:生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时 ...

  3. Node的require和module.exports

    node编程中最重要的思想之一就是模块,在 Node.js 模块系统中,每个文件都被视为独立的模块.这是这个思想,让javascript的大规模工程成为可能.模块化编程在前端大肆盛行,在node中导出 ...

  4. 移值 RTL8188EUS linux4.1.36 驱动

    网卡为COMFAST CF-WU720N RTL8188EUSVID 0x0bdaPIV 0x8179 驱动下载网址是http://www.comfast.cn/download/qdcx/item- ...

  5. JVM03——四种垃圾回收算法,你都了解了哪几种

    在之前的文章中,已经为各位带来了JVM的内存结构与堆内存的相关介绍,今天将为为各位详解JVM垃圾回收与算法.关注我的公众号「Java面典」了解更多 Java 相关知识点. 如何确定垃圾 想要回收垃圾, ...

  6. 搭建私有 Nuget 服务器教程(1)

    对于 .NET 开发者来说,nuget 是必不可少的程序包管理工具.相应地,大部分开发团队都需要在内部搭建 Nuget 服务器,以管理私有 nupkg 包.本教程所使用的 Nuget 服务器,不是微软 ...

  7. 原生Canvas循环滚动弹幕(现金红包活动带头像弹幕)

    效果 gif有些糊,可以 在线预览 实现关键点 requestAnimationFrame 循环帧: 绘制单条弹幕,画框子 -> 画头像 -> 写黑色的字 -> 写红色的字, mea ...

  8. 2016 Multi-University Training Contest 4 T9

    http://acm.hdu.edu.cn/showproblem.php?pid=5772 最大权闭合子图. 得到价值w[i][j]的条件是选了i,j这两个位置的字符.选择位置的i字符花费为 第一次 ...

  9. Python基础篇(三)_函数及代码复用

    Python基础篇_函数及代码复用 函数的定义.使用: 函数的定义:通过保留字def实现. 定义形式:def <函数名>(<参数列表>): <函数体> return ...

  10. 在Centos系统中基于PowerDNS和Poweradmin自建域名解析服务器替代DnsPod

    本文讲述了我在Centos 7系统(其他版本的Centos未尝试)中基于PowerDNS和poweradmin自建域名解析服务器替代DnsPod的过程.通过本文所述方法,可以建立权威域名解析服务器的m ...