多年以来,我一直在使用像这样的一行来自动创建不带口令的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] 删除。
我来说两句