在MacOS Mojave上创建不带密码短语的SSH密钥

罗伊

多年以来,我一直在使用像这样的一行来自动创建不带口令的SSH密钥对:

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

我通常从Ansible播放中调用ssh-keygen,然后在创建实验室环境时继续将密钥提供给大量无用的来宾计算机。

但是,由于升级到MacOS Mojave(10.14.2)之后,Ansible在Linux guest虚拟机上将生成的密钥报告为无效,并且尝试在Linux guest虚拟机上手动使用该密钥会提示您输入密码,就像私钥一样受密码保护。

但是,在任何Linux主机上执行相同的操作会创建一个有效的密钥。

在MacOS Mojave上是否有一些新技巧可以生成有效的无密码密钥对?

更新

在检查生成的密钥文件时,我注意到MacOS Mojave使用-----BEGIN OPENSSH PRIVATE KEY-----而不是将其-----BEGIN RSA PRIVATE KEY-----用作PEM标头。页脚也一样。

OpenSSH 7.8和更高版本上的密钥格式似乎有所更改。简单地更改标题并不能解决问题。

罗伊

OpenSSH_7.8p1及以后的版本中,默认密钥文件格式似乎有所更改MacOS Mojave 10.14.2随带OpenSSH_7.9p1

添加会-m PEM更改ssh-keygen使用旧版PEM私钥格式的行为,而这是以前Mac OS发行版中的默认格式。

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

不幸的是,OpenSSH的早期版本不支持-m选项,因此必须维护特定于版本的代码以支持较早的OS版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章