Skip to main content

使用公钥认证连接

SSH 允许连接到安全、加密和经过身份验证的控制器。这允许您在安全设置中执行控制器的远程管理。

可以通过提供凭据(用户名和密码)来完成身份验证。您还可以使用基于密钥的身份验证(公钥身份验证)来选择更强大的方法。用户使用密钥登录控制器。密钥由公钥和私钥组成。这种密钥对比密码更难泄露。

日志记录操作检查控制器的公钥是否与开发系统的私钥匹配。在这种情况下,无需使用密码即可授予访问权限。

您创建用于 CODESYS 基于Windows的开发系统。您可以选择指定密码,以便进一步提高公钥认证的安全性。您可以将公钥复制到一个甚至多个控制器,这可能是可取的,例如,在由多个控制器组成的机器上。私钥始终保留在开发系统中,在任何情况下都不得共享。

重要

永远不要共享私钥。

创建 SSH 密钥

首先在 Windows 中创建一个由私钥和公钥组成的 SSH 密钥。

  1. 安装开源“PuTTY”工具。

    不同的应用程序位于 C:\Program Files (x86)\PuTTY.

  2. 打开“PuTTYgen”工具。

    将打开以下对话框。

    _sl_img_puttygen_generator.png
  3. 选择 RSA 选项并单击 产生 按钮。

    开始创建密钥。

  4. 同时,在进度条下方的空闲空间中移动鼠标,直到创建密钥。

    将打开以下对话框:

    _sl_img_puttygen_generated_key.png
  5. 如果需要,您可以在 密钥密码 和 确认密码.

    _sl_img_puttygen_passphrase.png

    如果您已分配密码,则密钥也受到保护。每次使用密钥登录控制器时都需要密码 CODESYS.将密码短语保密,以便只有授权人员知道。

  6. 点击 保存私钥 按钮并指定文件名(例如: serviceuser.ppk)。

    _sl_img_puttygen_serviceuser.png
  7. 点击 保存.

    私有 PPK 密钥已创建。

  8. 点击 转换 → 导出 OpenSSH 密钥 命令。

  9. 指定文件名(例如: serviceuser.openssh)。

    创建私有 OPENSSH 密钥。

  10. 在里面 用于粘贴到 OpenSSH 授权密钥文件中的公钥 文本字段,现在选择整个字符串。

    _sl_img_public_key_generated.png
  11. 在 上下文菜单,点击 复制 字符串复制到剪贴板并将其粘贴到文本文件中。命名文本文件(示例: serviceuser.pub)。

    私人 PUB 密钥已创建。

  12. 将密钥移动到开发计算机上合适的,甚至可能是隐藏的位置。或者将文件保存在与开发系统一起使用的 U 盘上。

    例如,私钥和公钥现在位于 D:\PLCs\BeagleBone\Keys 目录。

    注意

    确保私钥始终保留在开发系统上。绝对不能共享私钥。

将公钥复制到控制器

复制公钥(例如: serviceuser.pub) 到控制器。注意供应商信息。

将私钥链接到 CODESYS

  1. 打开 CODESYS 然后单击 工具 → 部署控制 SL 命令。

  2. 在 沟通 选项卡,展开 基于密钥的登录 部分。

  3. 点击 添加密钥文件 按钮。

    文件选择对话框打开。

  4. 选择所需的私钥(OPENSSH 文件)。

    例子: serviceuser.openssh

    _sl_img_options_runtime_deploy_toll.png
  5. 点击 行 确认对话框。

    对话框关闭。现在 CODESYS 有私钥。

提示

您还可以在选项中链接私钥,在 运行时部署工具 类别。

使用 SSH 密钥的基于密钥的登录

使用 SSH 密钥登录控制器。

  1. 点击 工具 → 部署控制 SL 命令。

    这 运行时部署工具 打开。

  2. 选择 基于密钥的SSH登录 选项。

    一个列表框提供了所有已知的键 CODESYS.

  3. 选择所需的键 serviceuser.openssh.

  4. 在相应的输入字段中指定用户名和密码,必要时还要指定密码。

  5. 点击 扫描 按钮。

    扫描网络以查找匹配的控制器。显示搜索结果。

  6. 从控制器列表中选择所需的一个。

  7. 例如,单击 系统信息.

    控制器上的 SSH 服务器检查私钥是否与公钥匹配。在这种情况下,您已通过身份验证并登录。之后,执行命令并显示控制器的系统信息 CODESYS.