SSH公/私秘钥的生成及使用
如果使用GitHub比较多的朋友,对SSH Key肯定也不陌生,当我们SSH进行代码的pull&push时,往往需要我们配置SSH Key。
如果Linux用的多朋友,肯定对SSH Key都很熟悉,当我们使用ssh命令连接其他Linux服务器时,如果没有配置SSH Key,它会要求我们输入密码,这不仅繁琐,而且受信任的网络背景下还需要输入密码,明显不太合乎情理,况且在某些没有人为干预的情况下,不方面输入密码,输入密码这种方式将变得不可行,不安全:
  
这个时候我们就需要SSH Key了,接下来介绍使用OpenSSH来生成SSH Key。
首先,我们需要安装OpenSSH。
幸运的是,Linux默认情况下已经安装了OpenSSH,输入ssh即可验证是否已安装,如果未安装,可以使用apt-get(Ubuntu)或者yum(CentOS)来进行安装。
而Windows环境下,OpenSSH 在 2018 年秋季已添加至 Windows,并包含在 Windows 10 和 Windows Server 2019 中,如果是其它版本的WIndows,那可能需要自己安装配置了。
生成SSH Key
生成SSH Key使用ssh-keygen工具组件,一般的,我们生成的是RSA公/私秘钥的SSH Key。
生成之前,首先我们最好先确认我们之前是否已经生成过了,否则重新生成将会覆盖原来的SSH Key。
Linux:检查/home/[用户]/.ssh目录(root用户则是/root/.ssh目录)下是否存在id_rsa和id_rsa.pub两个文件
Windows:检查C:\Users\[用户]\.ssh目录下是否存在id_rsa和id_rsa.pub两个文件
其中,id_rsa保存的是私钥,id_rsa.pub保存的是公钥。
如果两个文件存在,那么不用生成,直接使用就行了,当然,你也可以将.ssh目录下的文件都删除,然后重新生成SSH Key,但这样会导致原来的SSH Key失效。
如果不存在,我们执行下面的命令开始生成SSH Key:
# 可以使用 -f 参数指定私钥的存放文件,不指定,Linux默认保存到/home/[用户]/.ssh/id_rsa(root用户则是/root/.ssh/id_rsa),Windows默认保存到C:\Users\[用户]\.ssh\id_rsa
# 可以使用 -N 参数指定秘钥
ssh-keygen -t rsa
  
命令执行后,在用户目录下的.ssh目录中就会生成id_rsa和id_rsa.pub两个公私秘钥文件了。
使用SSH Key
有了SSH Key,我们就可以使用ssh免密连接了,比如我还有一台服务器:192.168.209.129,这台服务上有个用户feng,那么我们在/home/feng/.ssh目录下创建authorized_keys文件(如果不存在),然后将上面生成的id_rsa.pub文件的内容追加进去:
# 进入用户主目录
cd ~
# 如果用户主目录下.ssh目录不存在,那么直接创建
mkdir .ssh
# 打开authorized_keys文件,将id_rsa.pub文件的内容追加进去,然后保存退出
vim .ssh/authorized_keys
之后使用ssh连接192.168.209.129这台服务器就不需要密码了。
我们还可以在github,gitee或者gogs等git平台使用SSH Key,在它们的管理后台都有一个SSH Key配置的选项卡页面,以gogs为例:
  
SSH公/私秘钥的生成及使用的更多相关文章
- Hadoop中ssh+IP、ssh+别名免秘钥登录配置
		1.为什么要进行 SSH 无密码验证配置? Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个Da ... 
- git乌龟http/https以及ssh clone的秘钥配置永久免密码登录设置
		1.安装 安装Git 安装TortoiseGit 乌龟客户端 首先下载安装一个git客户端这个就不多说了基本就是next一直到底 安装后首次新建一个项目project在git服务器上 2.配置 1.注 ... 
- centos ssh免密码秘钥登录
		假设从A主机ssh登录B主机,用秘钥代替密码,步骤如下: 1.在A主机上执行:ssh-keygen -t rsa 一切默认,不用输入密码,生成两个文件: /root/.ssh/id_rsa /roo ... 
- SSH配置免秘钥登录
		一. SSH 配置免秘要登录 配置SSH 免秘要登录,虽然就那么几步,但总是会出现点小问题,今天就做下记录.SSH 免秘钥就是让两台机器相互信任,不需要输入密码就能相互登录.配置相互信任就是把各自的 ... 
- ssh设置免秘钥登录
		系统:CentOS7.2 需求:A服务器的fab用户需要使用www用户免秘钥登录到B服务器 换句话说,就是在A服务器的fab用户下,ssh www@B服务ip -p 端口 ,然后登录过去 ... 
- git 秘钥的生成
		在命令查看自己的秘钥还是公钥 cat .ssh/id_rsa.pub/cat .ssh/id_rsa 
- Linux ssh服务开启秘钥和密码认证
		问题描述: 实现Linux秘钥和密码同时认证 解决方案: vim /etc/ssh/sshd_config 基本参数: PermitRootLogin yes #允许root认证登录 Password ... 
- SSH密码和秘钥认证原理
		SSH登录方式主要分为两种: 1. 用户名密码验证方式 说明: (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户: (2) 用户会根据服务器发来的公钥对密码进行加密: (3) 加密后的信 ... 
- ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha
		ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算 ... 
随机推荐
- 【编程思想】【设计模式】【结构模式Structural】代理模式Proxy
			Python版 https://github.com/faif/python-patterns/blob/master/structural/proxy.py #!/usr/bin/env pytho ... 
- grep命令输出显示高亮字
			grep命令执行后,终端上输出显示颜色可以加"--color=auto"的参数. 另外的两个办法是: 1.设置环境变量: export GREP_OPTIONS="--c ... 
- 『与善仁』Appium基础 — 23、操作滑动的方式
			目录 1.swipe滑动 2.scroll滑动 3.drag拖拽事件 4.滑动方法小结 5.拓展:多次滑动 6.综合练习 在Appium中提供了三种滑动的方式,swipe滑动.scroll滑动.dra ... 
- 8、Redis五大数据类型---哈希(Hash)
			一.哈希(Hash)简介: Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis hash 是一个键值对集合. 二.常用命令 1.h ... 
- JavaWeb的三大作用域
			三大作用域描述 名称 类型 描述 request HttpServletRequest 将数据放在请求作用域中,在一次请求中实现数据的共享,比如请求转发 session HttpSession 将数据 ... 
- 如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目
			目录 前言 项目目录 搭建项目 1. docker安装启动mysql以及redis 1.1 安装mysql 1.2 安装redis 2. 初始化数据库 3.创建项目 4.初始化代码 4.1 全局配置文 ... 
- Linux编译安装、压缩打包、定时任务管理
			编译安装 压缩打包 定时任务管理 一.编译安装 使用源代码,编译打包软件 1.特点 1.可以定制软件 2.按需构建软件 2.编译安装 1.下载源代码包 wget https://nginx.org/d ... 
- IDEA添加yaml自动补全语法插件
			问题:编写yml文件的时候,系统不能给自动补全 解决办法:File---->Settings---->Plugins---->搜索Spring Assistant x 项目效果预览 
- AcWing09. 分组背包问题
			有\(N\)组物品和一个容量是\(V\)的背包. 每组物品有若干个,同一组内的物品最多只能选一个. 每件物品的体积是\(v_{ij}\),价值是\(w_{ij}\),其中\(i\)是组号,\(j\)是 ... 
- 辅助函数和高阶函数 map、filter、reduce
			辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测): push() pop() shift() unshift() ... 
