A blog site powered by WordPress

Moposx的部落阁

標籤: Key

ssh-add 遇到 “invalid format”的解决方案

出现这一问题的原因主要有两个,一是密钥文件本身有问题,二是 ssh 程序有问题。

首先检查一下密钥文件,注意观察文件末尾:

# I'm on Zsh.
$ cat ./id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
...
...
-----END OPENSSH PRIVATE KEY-----%

如果你也在用 Zsh,想必对这个多余的百分号有所了解。出现百分号意味着该文件缺少一个换行符号。那么问题就很简单了,打开文本编辑器,在”—–END OPENSSH PRIVATE KEY—–“后面加上一个空行,记得检查换行符类型(CRLF / LF)。问题就能轻松解决。

在 Windows 下也很可能遇到这个问题,这时请下载 PuTTYGen,用 PuTTYGen打开私钥文件,点击菜单栏的”Conversion”,然后点选 Export OpenSSH key (force new format),然后就可以正常导入了。稍后再补上图片说明。

重装系统后导入SSH和GPG密钥

以 macOS 为例。

导入 SSH 密钥

macOS 已经内置了 SSH 了,因此我们不必另行安装。准备好先前导出过的 SSH 密钥,在终端下执行命令:

$ ssh-add ./id_rsa

此时可能收到错误:

$ ssh-add id_rsa
Error loading key "id_rsa": invalid format

如果你遇到了这个错误,请参考:

导入 GPG 密钥对

# 建议把文件权限设置为 600
$ gpg --import ./pgp-pubkey-export.txt
gpg: directory '~/.gnupg' created
gpg: keybox '~/.gnupg/pubring.kbx' created
gpg: ~/.gnupg/trustdb.gpg: trustdb created
gpg: KEY INFO imported
gpg: Total number processed: 1
gpg:               imported: 1
$ gpg --allow-secret-key-import --import ./pgp-seckey-export.txt
# Then enter your passphrase
gpg: key INFO not changed
gpg: key INFO: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
 

Powered by WordPress & Theme by Anders Norén