生成密钥对

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 默认情况下在~/.ssh目录下生成id_rsa和id_rsa.pub两个文件
# id_rsa是密钥,id_rsa.pub是公钥 # 生成a密钥对和b密钥对,-f参数设置密钥文件的文件名
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/a_id_rsa
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/b_id_rsa

连接a机器用密钥a,连接b机器用密钥b

# 在~/.ssh目录下编辑config文件
Host a
HostName 192.158.5.201
User root
Port 1234
IdentityFile ~/.ssh/a_id_rsa
Host b
HostName 192.158.5.202
User root
Port 1234
IdentityFile ~/.ssh/b_id_rsa # 下面两条命令就可以连上a,b两台机器
ssh a
ssh b

访问github用密钥a,访问gitee用密钥b

# 在~/.ssh/config配置文件中添加如下配置
Host github.com
IdentityFile ~/.ssh/a_id_rsa
Host gitee.com
IdentityFile ~/.ssh/b_id_rsa # 验证, 如果失败可用-vT参数查看失败原因
git -T git@github.com
git -T git@gitee.com

访问多个github账号

  • 设置不同Host对应同一个HostName但密钥不同
  • 取消全局用户名/邮箱设置,为每个仓库独立设置用户名/邮箱
# 在~/.ssh/config配置文件中添加如下配置
Host account1.github.com
HostName github.com
IdentityFile ~/.ssh/a_id_rsa
Host account2.github.com
HostName github.com
IdentityFile ~/.ssh/b_id_rsa

设置邮箱和用户名

# 设置全局的
git config --global user.email "your_email@example.com"
git config --global user.name "your_name" # 取消全局的
git config --global --unset user.email
git config --global --unset user.name # 为每个库设置单独的
git config user.email "your_email@example.com"
git config user.name "your_name"

scp的简化

# 未配置ssh-config之前
scp -P 1234 root@xxx.xxx.xxx.xxx:/abc/def . # 配置ssh-config之后
scp a:/abc/def .

ssh-agent

ssh-agent bash命令解释: ssh-agent是专为既令人愉快又安全的处理RSA和DSA密钥而设计的特殊程序,不同于ssh,ssh-agent是个长时间持续运行的守护进程(daemon),设计它的唯一目的就是对解密的专用密钥进行高速缓存。ssh包含的内建支持允许它同ssh-agent通信,允许ssh不必每次新连接时都提示您要密码才能获取解密的专用密钥。对于ssh-agent,您只要使用ssh-add把专用密钥添加到ssh-agent的高速缓存中。这是个一次性过程;用过ssh-add之后,ssh将从ssh-agent获取您的专用密钥,而不会提示要密码短语来烦您了。 如果出现如下提示信息说明没有SSH Key在代理中

补:遇到的一个错误,提示信息如下

/root/.ssh/config: line 5: Bad configuration option: identifyfile
/root/.ssh/config: terminating, 1 bad configuration options # 原因是拼写错误
# IdentifyFile --> IdentityFile

参考

SSH管理多密钥的更多相关文章

  1. Windows使用SSH管理Ubuntu

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/manage-ubuntu-on-wind ...

  2. ssh服务、密钥登陆配置

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  3. 002-自定义打开terminal,以及快捷键,其他程序类似,ssh管理-sshpass, Shuttle

    一.利用Automator软件完成服务设定 1.使用Command+Space,打开Spotlight,搜索Automator 2.搜索到之后,双击打开,选择“服务[或快速操作]” 3.将“服务收到[ ...

  4. ssh&scp指定密钥

    scp时指定密钥: scp -P22   -r -i ~/.ssh/dongjing-shanghai.pem root@kiri_pro01:/data/backup/back_from_japan ...

  5. SSH应该使用密钥还是密码?

    关于SSH,几乎每个人都同意密钥要优于密码,更安全,并且更先进,但我并不同意这个观点. 虽然密钥的确可以更好,但它有着还没被意识到的严重风险,并且我认为比得到妥善管理的密码更不安全. 通常密钥更好的理 ...

  6. ubuntu13 安装并配置ssh,交换密钥

    1.下载安装sudo apt-get install ssh,若出现问题,可选择安装openssh-server,或ssh-server等 2.启动ssh,命令:sudo /etc/init.d/ss ...

  7. ssh别名登录密钥登录

    在centos上使用别名和是用密钥登录: vim /root/.ssh/config  #输入下列内容 Host * User root   #以root登录 ServerAliveInterval ...

  8. SSH管理(重启 停止 运行 安装)centos7

    下面整理经常用到管理SSH服务的命令,方便复制哈. SSH服务状态 systemctl status sshd.service SSH运行命令 service sshd start SSH重启命令 s ...

  9. 使用ssh管理远程主机

    首先,找两台虚拟机ping通,因为这个实验目的是通过客户端访问服务端. 咱们进入虚拟机后,打开终端,输入命令:rpm -qa | grep openssh 卸载  输入命令:  yum remove ...

随机推荐

  1. (stm32f103学习总结)—独立看门狗(IWDG)

    一.IWDG介绍 1.1 IWDG简介 STM32F1芯片内部含有两个看门狗外设,一个是独立看门狗IWDG,另 一个是窗口看门狗WWDG.两个看门狗外设(独立和窗口)均可用于检测 并解决由软件错误导致 ...

  2. PN结

    摘自:https://blog.csdn.net/CPJ_phone/article/details/40979027                                          ...

  3. 更改spinner字体大小

    做下拉框的时候,我采用的是spinner和string-array,因为比较简单. 可是整个界面的字体大小与下拉框里面的字体大小不符合,所以我们要更改spinner里面的字体大小. 方法是: 在布局中 ...

  4. Android:Unable to find explicit activity class报错

    错误:Unable to find explicit activity class 原因:没有给activity在AndroidManifest.xml中注册 解决办法: 在AndroidManife ...

  5. Exchange统计邮箱数量

    以Exchange管理员身份登录,打开PowerShell控制台. 1.查询Exchange组织邮箱数量 键入以下命令. Get-Mailbox | Measure-Objcet 2.查询某数据库邮箱 ...

  6. Python Django项目日志查询系统

    该项目适合中小型公司日志查询工作.大型公司可以使用elk等.该系统其实就是调用了absible命令去查日志,然后把输出的信息输到页面查看. 日志查询系统 维护手册 作者:陈土锋 日期:2020年6月1 ...

  7. git设置本地与远程分支关联

    1.为了避免每次都进行验证,在git进行绑定ssh mkdir ~/.ssh ssh-keygen -t rsa -C "xxx@qq.com" 将生成的公钥粘贴到git中 2.本 ...

  8. Blazor 生命周期

    执行周期 1. SetParametersAsync 2. OnInitializedAsync(调用两次) 和 OnInitialized: 3. OnParametersSetAsync 或 On ...

  9. 【面试普通人VS高手系列】CPU飙高系统反应慢怎么排查?

    面试过程中,场景类的问题更容易检测出一个开发人员的基本能力. 这不,一个小伙伴去阿里面试,第一面就遇到了关于"CPU飙高系统反应慢怎么排查"的问题? 对于这个问题,我们来看看普通人 ...

  10. angular.js中 路由 用法及概念

    在开讲之前,首先谈谈APP应用.平时我们用的app总是多页面,如果用原生安卓或者苹果,那当然很流畅啦.但是当我们用一般的html页面做移动端,简单时候我们可以用<a href="&qu ...