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
Ssh do_convert_from_pkcs8:/dev/fd/63不是公认的公钥格式_Ssh_Openssl_Ssh Keygen - Fatal编程技术网

Ssh do_convert_from_pkcs8:/dev/fd/63不是公认的公钥格式

Ssh do_convert_from_pkcs8:/dev/fd/63不是公认的公钥格式,ssh,openssl,ssh-keygen,Ssh,Openssl,Ssh Keygen,我正在尝试使用以下脚本检索我的PIV密钥: getPIVkey.sh NAME=`security find-certificate | grep PIV | sed 's;keychain:";;g' | sed 's;";;g'` echo $NAME ssh-keygen -i -m pkcs8 -f <(security find-certificate -p "$NAME" | openssl x509 -noout -pubkey) keychain: PIV-Bill K

我正在尝试使用以下脚本检索我的PIV密钥:

getPIVkey.sh

NAME=`security find-certificate | grep PIV | sed 's;keychain:";;g' | sed 's;";;g'`
echo $NAME
ssh-keygen -i -m pkcs8 -f <(security find-certificate -p "$NAME" | openssl x509 -noout -pubkey)
keychain: PIV-Bill K Brown (piv)
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
    unable to load certificate
    140735828857800:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.50.2/libressl/crypto/pem/pem_lib.c:704:Expecting: TRUSTED CERTIFICATE
    do_convert_from_pkcs8: /dev/fd/63 is not a recognised public key format

在第一个
sed
命令中,在
keychain:
和引号之间似乎缺少一个空格。因此,设置
NAME
变量的命令应该是

NAME=`security find-certificate | grep PIV | sed 's;keychain: ";;g' | sed 's;";;g'`
使用改进的
sed
命令,
NAME
的(打印)值不应再以
keychain:
开头,而应仅包含名称

由于
名称
中的值错误,第二个
安全查找证书
命令失败,因此无法在钥匙链中找到指定输出的输出。。之后执行的命令也会失败

仅供参考,在对问题的回答中解释了引用
/dev/fd/63
的原因