ssh-密钥生成

简介
SSH 协议的典型用途,该协议在企业网络中用于:
	为用户和自动化流程提供安全访问
	交互式和自动文件传输
	发出远程命令
	管理网络基础设施和其他任务关键型系统组件。
  1. ssh keys是ssh中基于密匙的安全验证,你可以通过创建私人密匙和公用密匙的方式来完成ssh keys方式的ssh登陆验证。

  2. 使用ssh远程登陆服务器有两种方式,一种是使用密码登陆,另一种是使用ssh key登陆

    SSH共有两种登录方式: 
    	1. 口令验证登录 
    		1. 服务器生成公钥和私钥。
            2. 客户端发起连接请求,服务器将公钥发给客户端。
            3. 客户端生成口令(服务器密码),并用服务器发来的公钥加密,发送给服务器。 
            4. 服务器通过私钥解密,拿到口令(服务器密码),如果正确则认证成功。 
    
    	2. 密钥验证登录 
    		1. 客户端生成公钥和私钥,将公钥提前部署在服务器上。
            2. 客户端发起连接请求。 
            3. 服务器随机生成一个字符串,用本地的公钥加密,发送给客户端。 
            4. 客户端通过私钥解密,将解密后的字符串发送给服务器。 5. 服务器验证本地字符串和客户端发来的字符串的一致性,如果通过,则认证成功。
    
ssh生成的密钥类型
算法类型公钥私钥
ED25519 (推荐)id_ed25519.pubid_ed25519
RSA (不推荐)id_rsa.pubid_rsa

推荐使用ED25519密钥类型

注意:
	密钥用于鉴权,请谨慎保管。公钥文件以 .pub 扩展名结尾,可以公开给其他人,而没有 .pub 扩展名的私钥文件不要泄露给任何人!
	
	常见的 SSH 登录密钥使用 RSA 算法。RSA 经典且可靠,但性能不够理想。

	只要你的服务器上 OpenSSH 版本大于 6.5(2014 年的古早版本),就可以利用 Ed25519 算法生成的密钥对,减少你的登录时间。如果你使用 SSH 访问 Git,那么就更值得一试。

	Ed25519 的安全性在 RSA 2048 与 RSA 4096 之间,且性能在数十倍以上。

准备工具

需要用到 ssh-keygen,它是 OpenSSH 的组件,在 Linux 和 macOS 中一般都自带了。

如果你使用 Windows,安装 Git for Windows 时会一并安装 OpenSSH 到系统中。建议 Windows 用户使用 Git Bash 完成文中操作。

生成密钥
ssh-keygen -t rsa -b 4096 -f 指定私钥名称 -C '注释信息(一般写邮箱)'
# [-t rsa] 表示使用 RSA 算法
# [-b 4096] 表示 RSA 密钥长度 4096 bits (默认 2048 bits),Ed25519 算法不需要指定
# [-f 指定私钥名称] 生成一个私钥文件(同时也会生成一个公钥文件 *.pub)
# [-C ''] 表示在公钥文件中添加注释
# 回车后,会提示输入 passphrase,即为私钥添加一个'解锁口令'
解释:
	私钥必须要有 passphrase。如果私钥文件遗失,没有 passphrase 也无法解锁(只能暴力破解)。不要偷懒,passphrase 一定要加。
	一对密钥只对应一个 Git 服务。一对密钥通吃各 Git 服务不太明智。
	严格来讲,应该在不同的机器上用不同的密钥,出了问题好排查处理。
详细操作

Linux ssh命令详解 - 小a玖拾柒 - 博客园 (cnblogs.com)

使用 Ed25519 算法生成你的 SSH 密钥 - 知乎 (zhihu.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值