ssh-kengen的使用说明

本文介绍SSH协议及其在远程登录中的应用,并详细讲解如何使用ssh-keygen生成密钥对,实现免密码登录。此外,还介绍了如何为不同的平台和服务生成及配置多个密钥对以增强安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前使用git时,一直提到了ssh-keygen,生成授权密钥对!之前自己是上网偶尔碰到,才知道这个东西的,所以使用github,包括coding,看到都需要ssh配置,就知道是怎么回事,不过之前停留的阶段,很浅!也就仅支持生成一对密钥对,然后免ssh输入密码登录!
	ssh-keygen -t rsa 	// 会在 ~/.ssh/,生成 'id_rsa' 和 'id_rsa.sub' 2个文件

上面是最简单的用法,也就是我这么干的!只使用一个密钥,然后多个不同的地方(github, coding ,自己的ssh服务器),使用同一个公钥。今天,专门写下这个文档,自己巩固一遍,也给新人一个教程:
	
1.ssh服务:
	全称:Secure Shell。建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
	我们一般使用ssh,登录远程主机!

	分为:
		服务端 - sshd
		客户端 - ssh

	linux下的配置文件,/etc/ssh/下有服务端和客户端的配置:
		sshd_config
		ssh_config

	windows下一般的客户端软件:
		putty
		secureCRT
		Xshell

2.ssh-keygen - 一般ssh链接都需要输入用户名和密码,进行认证。而 ssh-keygen,就是为了解决这个交互认证问题,本地放置私钥,登录的服务器上放置公钥,ssh服务就检查密钥匹配,从而确认身份。
	ssh root@192.168.0.1
	输入用户密码,正确,然后登录服务器!
	ssh-keygen的一般配置,可查看:http://blog.youkuaiyun.com/beyond__devil/article/details/53224566(之前写的博客)
	再简述下步骤,我们以coding操作为例(因为里面有个 'ssh -t' 用于首次测试,我之前不知道):
		1>ssh-keygen -t rsa 	// -t 是加密类型
		2>将公钥内容复制到 coding 的 帐户->ssh公钥->新增公钥
		3>ssh -T git@git.coding.net		// 测试ssh是否成功

3.今天主要想说的是,生成多个ssh密钥对!更安全点!
	一个github帐号
	一个coding帐号
	多个远程主机帐号
	...
	我们为每个帐号,来生成一个公钥

	1>ssh-keygen -t rsa -f ~/.ssh/github/id_rsa		// -f 是指定密钥对名称(没有-p参数,来代表生成到某个目录下)
	2>vim ~/.ssh/config 		// 它也是ssh检查,密钥配置到一个配置文件,我们配置多个密钥,就需要在它里面进行配置
		Host github.com www.github.com
		IdentityFile ~/.ssh/github/id_rsa
	3>将~/.ssh/github/id_rsa.sub内容,复制到github帐户的ssh认证
	4>ssh -T git@github.com

	总结:
		创建多个密钥,就不能使用默认配置了,需要我们配置 ~/.ssh/config 配置文件,指定其中的 'Host' 和 'IdentityFile' 文件,一对表示一个配置

4.还有一种情况,多个ssh密钥对的情况:
	同一个平台,我有多个账号。例如:我在github上有2个账号:
		beyonddevil 	dongxuemin
	通过3中,配置的host方式,没法区分我是哪一个用户(不知道ssh的密钥匹配是否是默认匹配第一个,进行验证),此时,需要指定主机名,主机名跟邮箱相关:
	1>可以指定邮箱,同一个平台下,邮箱具有唯一标识符:
		ssh-keygen -t rsa -C "devildongxuemin@gmail.com" -f ~/.ssh/github/devil
		ssh-keygen -t rsa -C "dong19900611@126.com" -f ~/.ssh/github/dongxuemin
	2>vim ~/.ssh/config
		Host devil.github.com				// devil代表 'devildongxuemin@gmail.com'
		HostName github.com
		IdentityFile ~/.ssh/github/devil
		Host dongxuemin.github.com			// dongxuemin代表 'dong19900611@126.com'
		HostName github.com
		IdentityFile ~/.ssh/github/dongxuemin
	3>同样是将公钥复制到github账户的ssh认证
	4>测试2个账号的ssh认证是否通过:
		ssh -T git@devil.github.com			// 注意添加上主机名
		ssh -T git@dongxuemin.github.com	// 注意添加上主机名
	5>同一台电脑上,本地git和github的版本操作:
		1)利用新的密钥,第一次克隆
			git clone git@devil.github.com:beyonddevil/laravel5-rbac-example.git 		// 注意使用的是 'devil' 主机名(不然,git哪知道使用哪一个用户来克隆这个仓库!)
		2)之前已经克隆过了,用的默认的 id_rsa 密钥,需要修改之前的密钥:
			修改git仓库的配置文件:
				.git/config
				[remote "origin"]
					url = git@devil.github.com:beyonddevil/laravel5-rbac-example.git 	// 使用 'devil' 主机名

5.ssh更多信息,可查看文档:
	man ssh
	man ssh_config


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值