生成密钥对

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. ES6-11学习笔记--正则表达式的扩展

    y修饰符 u修饰符   复习以前的修饰符: i(忽略大小写) m(多行匹配) g(全局匹配)   y修饰符:粘连修饰符 const str = 'aaa_aa_a' const reg1 = /a+/ ...

  2. ES6-11学习笔记--对象的扩展

    属性简洁表示法 属性名表达式 Objec.is() 扩展运算符 与 Object.assign() in 对象的遍历方式   属性简洁表示法: 如果属性key跟变量名一样,可简写 let name = ...

  3. 使用vue-cli构建工具构建vue项目时候组件的使用

    <template> <div class="contains"> <!-- <div class="main"> & ...

  4. windows下右键新建md文件

    windows下右键新建md文件 打开注册表 win键+R打开运行对话框, 输入regedit, 打开注册表编辑器. 修改注册表 在磁盘的任意位置新建一个文件, 后缀名为reg, 并写入一下内容 [H ...

  5. SpringMVC-开启静态资源访问权限

    1.配置 <mvc:resources mapping="/js/**" location="/js/"/> mapping:代表js目录下的所有文 ...

  6. 在原有mysql机器上增加一台实例

    采用的是yum install mysql-community-server yum方式安装mysql(社区版) 文章基础上新加一个mysql实例. 这个完全可以直接实战上应用,只要规划好即可 服务器 ...

  7. 在UnityUI中绘制线状统计图

    ##先来个效果图 觉得不好看可以自己调整 ##1.绘制数据点 线状图一般由数据点和连线组成 在绘制连线之前,我们先标出数据点 这里我选择用Image图片来绘制数据点 新建Canvas,添加空物体Gra ...

  8. Codeforces Round #704 (Div. 2), problem: (C) Maximum width还是要多学习

    Problem - C - Codeforces 看清题目要求, 最重要部分在第二段. 大佬最后给出的代码果然简单, 思路简单化, 未必非要把答案在一个大括号里全部完成, 两个指针同时跑,中间加了一堆 ...

  9. acwing刷题--激光炸弹--前缀和(后期会有优化做法)

    地图上有 N 个目标,用整数 Xi,Yi 表示目标在地图上的位置,每个目标都有一个价值 Wi. 注意:不同目标可能在同一位置. 现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所 ...

  10. JQuery学习高级

    ## 今日内容:     1. JQuery 高级         1. 动画         2. 遍历         3. 事件绑定         4. 案例         5. 插件 ## ...