酷徒LOGO

在 macOS Mojave上,创建不带密码密码的SSH密钥


问题:

多年来,我一直使用这样的行来自动创建一对没有密码密码的SSH密钥对:


/usr/bin/ssh-keygen -q -b 1024 -N"" -C"vagrant@labman01" -f keys/labkey



在创建实验室环境时,我通常从 Ansible play调用 ssh,然后继续为一些vagrant客户机提供关键。

但是,由于升级到 macOS Mojave ( 10.14.2 ) 之后,在Linux客户机上报告的密钥被reported无效,并试图在Linux客户机上手动使用密钥,就像 private 键是密码 protected。

但是,在任何Linux主机机器上执行相同的操作都会创建。

是否有一些新的技巧可以在 macOS Mojave上生成一个有效的密码免费密钥对?

更新

在检查生成的密钥文件时我注意到 macOS Mojave使用了 -----BEGIN OPENSSH PRIVATE KEY----- 代替 -----BEGIN RSA PRIVATE KEY----- 作为标头对于页脚而言,这是相同的。

OpenSSH的密钥格式和更高版本似乎发生了变化。 简单地更改标题并不能解决问题。


回答 1:

你可以尝试生成带有非空密码的密钥,然后在这里设置密码为空:


ssh-keygen -b 2048 -t rsa -q -N"password" -f <your_key_file>


ssh-keygen -p -P"password" -N"" -f <your_key_file>



如果标题错误,你可以尝试更改文本:


sed -i -e 's/OPENSSH/RSA/' <your_key_file>




回答 2:

OpenSSH_7.8p1 中的默认密钥文件格式似乎发生了更改。 MacOS Mojave 10.14.2 附带 OpenSSH_7.9p1

添加 -m PEM 更改了 ssh-keygen的行为,使用旧的tftp private 密钥格式,这是前一个 Mac OS版本的默认。


/usr/bin/ssh-keygen -q -m PEM -b 1024 -N"" -C"vagrant@labman01" -f keys/labkey



不幸的是,在早期版本中不支持-m选项,因这里必须维护版本特定的代码来维护旧版本的。






Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷