Linux 是否检查SSH公钥?

Linux 是否检查SSH公钥?,linux,bash,encryption,ssh,rsa,Linux,Bash,Encryption,Ssh,Rsa,我要求用户提供他们的公共“id_rsa.pub”ssh密钥,然后我将其放入“/home/theiraccount/.ssh/authorized_key”中,这样他们就可以通过ssh登录到服务器。我想自动化这个过程 是否有任何方法来检查他们给我的字符串是否正常(通过编程或其他方式)?我想验证sshd可以读取文本,并且它实际上看起来像一个有效的公钥(并且没有被损坏) 换句话说,id\u rsa.pub文件的格式是什么?如果有人在字段中输入它,我可以在表单处理程序脚本中写入什么来验证它的完整性和正确

我要求用户提供他们的公共“id_rsa.pub”ssh密钥,然后我将其放入“/home/theiraccount/.ssh/authorized_key”中,这样他们就可以通过ssh登录到服务器。我想自动化这个过程

是否有任何方法来检查他们给我的字符串是否正常(通过编程或其他方式)?我想验证sshd可以读取文本,并且它实际上看起来像一个有效的公钥(并且没有被损坏)


换句话说,
id\u rsa.pub
文件的格式是什么?如果有人在字段中输入它,我可以在表单处理程序脚本中写入什么来验证它的完整性和正确性?

ssh-keygen
可用于计算密钥文件的指纹,如果不向其传递密钥,该指纹将失败:

ssh-keygen -l -f id_rsa.pub

另一种可能是,这样做的好处是可以同时根据已知受损密钥的黑名单检查密钥。

这里有一个链接,指向一个用Python编写的验证密钥的函数:假设您只对基本验证感兴趣,算法基本上是:1。拆分内容,第一个元素是
kt
=键类型,第二个元素是键字符串。2.base 64解码密钥字符串3。前四个字节是整数
ktl
,对应于键类型字符串4的长度。获取解码字符串5的字符4到4+
ktl
。它应该与钥匙类型相匹配
kt
。不适用于带有passwords@vidstige受密码保护的公钥?为什么?公钥不需要密码保护,私钥应该,你不会给任何人。什么样的工作流程需要对私钥进行健全性检查?对我来说,即使使用密码,它也能工作。