gpt4 book ai didi

objective-c - 查找适当的 key 以用于验证与 Objective-C 的 SSH 连接

转载 作者:行者123 更新时间:2023-12-03 17:49:25 25 4
gpt4 key购买 nike

我使用过的几个打开 SSH 连接的 native Mac 应用程序似乎具有这种神奇的能力,可以找到用于连接的适当的公钥+私钥(如果存在),然后显示系统钥匙串(keychain)对话框以要求用户输入解密私钥的密码。我想在我的应用程序中执行此操作。这到底是如何工作的?

我目前正在使用https://github.com/Lejdborg/NMSSH作为 libssh 的 Objective-C 包装器,它提供了通过公钥+私钥进行身份验证的方法,但据我所知,我必须弹出一个文件打开对话框并让用户选择所需的 key (不理想)并且显示我自己的密码对话框来代替系统的密码对话框。

最佳答案

它对 native 应用程序的工作方式是ssh-agent。自 Leopard 起,MacOS 就内置了随系统启动的自定义代理。

ssh 应用程序会自动尝试加载到代理中的身份,并且一旦添加受密码保护的身份,代理就会显示钥匙串(keychain)访问对话框。

您可以使用 ssh-add 程序向代理添加身份,然后 ssh 就可以正常工作了。

请注意,代理中的 key 优先于命令行中提供给 ssh 的 key (通过 -i 参数)。有时这会使 ssh 失败,因为错误尝试太多(当它尝试所有加载的 ssh 代理 key 时)

我不确定代理是否有库接口(interface);它使用 Unix Domain Socket 与 sshssh-add 程序进行通信。

https://help.github.com/articles/working-with-ssh-key-passphrases/ https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ssh-agent.1.html

关于objective-c - 查找适当的 key 以用于验证与 Objective-C 的 SSH 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com