赞
踩
第一章 Linux扩容LVM分区
第二章 Linux虚拟机安装VMware Tools插件
ssh-keygen -m 编码格式 -t 密钥类型 -f 文件路径 -b 密钥长度 -N 私钥密码 -C 备注( xxx@xxx.com格式) ssh-keygen -e:导出 ssh-keygen -i:导入 ssh-keygen -e -m pem -f xxx.pub # 将xxx.pub公钥转换成pem格式的编码格式 ssh-keygen -e -m pem -f xxx.pub | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48 # 将xxx.pub转换成十六进制的pem格式编码格式 egrep "BEGIN|END" # 等同grep -E "BEGIN|END" # 过滤显示指定值, 以 | 为分隔符做匹配 egrep -v "BEGIN|END" # 等同grep -Ev "BEGIN|END" # 原文中去除过滤出来的指定值 base64 -d # base64解码 od -t x1 -An -w4 # [-t x1]: 转16进制,x是\x(16进制表达式),x1按每个字节转换. [-An]: 去除前导的偏移量字符(每行的前7个字符). [-w4]: 按每4个字节进行拆行 [root@nginx ~]# echo 1231242abcd | od -t x1 0000000 31 32 33 31 32 34 32 61 62 63 64 0a [root@nginx ~]# echo 1231242abcd | od -t x1 -An 31 32 33 31 32 34 32 61 62 63 64 0a # 去除前7个字符0000000 [root@nginx ~]# echo 1231242abcd | od -t x1 -An -w4 31 32 33 31 32 34 32 61 62 63 64 0a tr 'a-f' 'A-F' # 原文中将小写 a-f(正则匹配,a到f的6个字母) 字符转换成大写 A-F(正则匹配,a到f的6个字母) 字符 tr -d ' ' # 去除空白字符 fmt -w 48 # 格式化成一行显示,并且每行最多48个字符
ssh-keygen
-m rfc4716 | pkcs8 | pem # 编码格式,不区分大小写
-t rsa | ecdsa | ed25519 | dsa # 密钥格式,不区分大小写
ssh密钥里推荐用sha256 + ssh-ed25519或sha25 + ssh-rsa。 # ecc 基于椭圆曲线数学的公开密钥加密算法,ecdsa是ecc和dsa的结合,叫椭圆曲线数字签名算法。
ssh密钥公钥算法的RSA算法也相对容易被撞库破解,判定为不安全算法,被逐渐淘汰。
ssh密钥公钥算法的ECDSA使用了SECP256r1椭圆曲线随机算法做随机数的产生,但由于2013年棱镜门事件曝光,美国国家安全局NSA对SECP256r1曲线安置了后门陷阱,之后ECDSA判定为不安全算法,被逐渐淘汰,但市场上仍然有部分产品在使用ECDSA算法。
ssh密钥公钥算法的ED25519是curve25519曲线即蒙哥马利曲线。
而交换机系列目前只支持ECDSA(即ecdsa-sha2-nistp521)和RSA(即ssh-rsa),从密钥强度和计算效率来看,ecdsa比rsa要强。又破解消耗的时间来看,ecdsa仍然比rsa更安全,而且是难以破解的。
### 生成RSA算法的密钥对(私钥+公钥)
ssh-keygen -t rsa -b 2048 -m pem -f rsa2048pem -N '' -C 'xxx@xxx' # 生成2048位的RSA密钥对
### 生成ECC算法的密钥对(私钥+公钥)
ssh-keygen -t ecdsa -b 521 -m pem -f ecdsa521pem -N '' -C 'xxx@xxx' # 生成521位的ECDSA密钥对
### RSA公钥转换成PEM格式
ssh-keygen -e -m pem -f rsa2048pem.pub # 将2048位的RSA公钥转换成PEM格式显示
### RSA公钥转换成PEM格式的十六进制显示
ssh-keygen -e -m pem -f rsa2048pem.pub | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48
ecdsa-sha2-nistp521、curve25519-sha256、ssh-ed25519:密钥交换算法
ecdsa:签名算法
sha2:加密算法
secp256k1:椭圆曲线算法 # SECG 曲线P-256 密码标准化组织,比特币使用的算法
nistp384(secp384r1): 椭圆曲线算法 # NIST/SECG 曲线P-384 美国国家标准(棱镜门有曝光NAS对此算法植入后门)
nistp521(secp521r1):椭圆曲线算法 # NIST/SECG 曲线P-521 美国国家标准(棱镜门有曝光NAS对此算法植入后门)
prime256v1: X9.62/SECG curve over a 256 bit prime field # X9.62/SECG 曲线P-256
### 生成RSA算法私钥
openssl genrsa -out rsa2048.key 2048 # 输出2048位的rsa私钥
### 生成RSA算法公钥
openssl rsa -in rsa2048.key -pubout -out rsa2048.pub # 输出私钥rsa2048.key对应的公钥
### 生成ECC算法私钥
openssl ecparam -name secp521r1 -out ecc521.pem # 生成secp521r1算法的ecc参数,默认pem格式
openssl ecparam -name secp521r1 -outform der|pem -out ecc521.pem # 生成secp521r1算法的ecc参数,用outform指定der或pem格式
openssl ecparam -name secp521r1 -outform pem -genkey -out ecc521.pem # 生成secp521r1算法的ecc参数和ecc私钥,用outform指定pem格式
openssl ecparam -name secp521r1 -outform pem -genkey -noout -out ecc521.pem # 生成secp521r1算法的ecc私钥,用noout去除ecc参数输出,用outform指定pem格式
# ecdsa-sha2-nistp521 密钥交换算法 # ecc+dsa的签名算法 & sha2加密算法 & nistp521(secp521r1) 椭圆曲线算法
openssl ecparam -list_curves # 输出ecc算法里支持的椭圆曲线算法列表
### 生成ECC算法公钥
openssl ec -in ecc521.pem -pubout -out ecc521.pub # 生成私钥ecc521.pem对应的公钥
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。