Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何知道SSH密钥';它的长度和类型?_Bash_Ssh_Key - Fatal编程技术网

Bash 如何知道SSH密钥';它的长度和类型?

Bash 如何知道SSH密钥';它的长度和类型?,bash,ssh,key,Bash,Ssh,Key,如何知道SSH密钥的长度和类型? 如果可能,我如何将它们放入变量中,以便稍后调用?您应该能够获得以下详细信息: # check length and type of key $ key_length=$(ssh-keygen -lf 00.key | awk '{print $1}'); echo $key_length $ key_type=$(ssh-keygen -lf 00.key | awk '{print $3}'); echo $key_type $ ssh-keygen -l

如何知道SSH密钥的长度和类型?
如果可能,我如何将它们放入变量中,以便稍后调用?

您应该能够获得以下详细信息:

# check length and type of key
$ key_length=$(ssh-keygen -lf 00.key | awk '{print $1}'); echo $key_length
$ key_type=$(ssh-keygen -lf 00.key | awk '{print $3}'); echo $key_type


$ ssh-keygen -lf 00.key
2048 SHA256:<key_in_base64> no comment (DSA)

$ ssh-keygen -lf 00.key
256 SHA256:<key_in_base64> no comment (ECDSA)

$ ssh-keygen -lf 00.key
2048 SHA256:<key_in_base64> no comment (RSA)

$ ssh-keygen -lf 00.key
00.key is not a public key file.
#检查钥匙的长度和类型
$key_length=$(ssh-keygen-lf 00.key | awk'{print$1}');echo$key\u长度
$key_type=$(ssh-keygen-lf 00.key | awk'{print$3}');echo$key\u类型
$ssh keygen-lf 00.key
2048 SHA256:无评论(DSA)
$ssh keygen-lf 00.key
256 SHA256:无注释(ECDSA)
$ssh keygen-lf 00.key
2048 SHA256:无评论(RSA)
$ssh keygen-lf 00.key
00.key不是公钥文件。

谢谢,@moirisa,我现在可以看到了。顺便说一句,这将适用于私钥和公钥。另外,键类型的
$3
,如果有,可能是$4user@host参考资料如下:
4096 SHA256:GQYs+cJD0cQB5i7uw0ACt6GMOecUXllx4sV5G3zAI70runner@6c2e8ac9eeac(RSA)
。也许最好将
$3
转换为
$NF
@AlexandreJuma,变量首字母缩写
NF
代表什么?NF是一个预定义变量,其值为当前记录中的字段数。awk在每次读取记录时自动更新NF的值。因此,当您访问$NF时,您实际上得到的是最后一个标记化项目(即:最后一个单词,如果分隔符是空白)。对于“我爱汽车”,NF=3和$NF=汽车。