全新安装 Ubuntu 15.10 后,在使用scp
or时git clone
,我收到以下警告(命令本身不会失败):key_load_public: invalid format
我怎样才能摆脱这个警告?
更新:这是输出scp -vvv
:
OpenSSH_6.9p1 Ubuntu-2, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to ... [...] port 22.
debug1: Connection established.
key_load_public: invalid format
debug1: identity file /home/alexzeitler/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/alexzeitler/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/alexzeitler/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/alexzeitler/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/alexzeitler/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/alexzeitler/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/alexzeitler/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/alexzeitler/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9p1 Ubuntu-2
检查文件
/Users/alexzeitler/.ssh/id_rsa
。还有什么?它是怎么到那里的?它应该是您的 RSA 私钥,不是吗?里面有东西
/Users/alexzeitler/.ssh/id_rsa.pub
吗?它是有效的公钥吗?如果您不使用这些键,将它们都删除,消息就会消失。如果您以不同的方式使用它们,请将它们移到其他地方。如果它们采用不同的格式,则相同。
公共部分可能已损坏,因此您可以使用以下命令从私有部分重新创建它:
###hostkeys 可能性另一种可能性是客户端正在尝试读取服务器公钥
HostBasedAuthentication
。你不允许它进来/etc/ssh/ssh_config
吗?这将是这些文件之一丢失或损坏:
您的
sshd
服务器没有抱怨?Load key "/root/.ssh/id_rsa": invalid format
我在 Dockerfile 中尝试时遇到了类似的错误:这导致了像
identity file /root/.ssh/id_rsa type -1 invalid format
和这样的错误read_passphrase: can't open /dev/tty
。不要echo "${SSH_PRIVATE_KEY}" >> /root/.ssh/id_rsa
用来传递私钥!正确的方法是使用
解决方案说明:我的私钥格式错误 - 而不是很多行,它作为一行传递,并且您可能有任何其他格式问题,例如在开头或结尾忘记了“-”,或者在行尾,例如缺失的换行格式或行尾的附加字母。
请参阅Dockerfile:使用无密码私钥克隆存储库。Errors: “authentication agent” or “read_passphrase: can't open /dev/tty”了解更多细节,其主要思想来自Add private key to ssh-agent in docker file,其思想再次来自Gitlab CI/Docker: ssh-add 一直要求输入密码。