【问题标题】:Finding appropriate keys to use for authenticating an SSH connection with Objective-C使用 Objective-C 查找用于验证 SSH 连接的适当密钥
【发布时间】:2015-08-04 03:37:34
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c macos cocoa ssh libssh


    【解决方案1】:

    它适用于原生应用的方式是ssh-agent。 MacOS 因为 Leopard 内置了随系统启动的自定义代理。

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

    您可以使用 ssh-add 程序将身份添加到代理,然后 ssh 将简单地工作。

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

    我不确定代理是否有库接口;它使用 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 2020-07-15
      • 1970-01-01
      相关资源
      最近更新 更多