目录

SSH keys

SSH keys

如果想要在远程计算集群上使用 QuantumATK 的 Job Manager 执行和管理 QuantumATK 作业,则需要无密码的SSH密钥对。本教程将向您展示应该如何操作。

  1. 创建一对公共和私有的 SSH 密钥;
  2. 将公共秘钥添加到远程集群上已授权 SSH 密钥的列表中;
  3. 检查无密码 SSH 连接是否正常工作。

我们提供了关于 Windows、Linux 和 OS X 的详细说明。

创建一组公共和私有的 SSH 秘钥

Windows

您需要安装一些专用软件生成 SSH 密钥并在 Windows 上建立 SSH 连接。PuTTY 和 PuTTYgen 都是很受欢迎的选择。下载并安装它们。

Linux 和 OS X

Linux 和 OS X

这些操作系统应该默认地提供您需要的软件。

$ ssh-keygen

将公共秘钥添加到远程集群已授权的 SSH 秘钥

下一步,您需要将您的公共 SSH 秘钥添加到远程集群已授权秘钥的清单上。

注意

您可能需要集群的管理员为您执行此操作。无论如何,下面我们将展示如何在您有权访问的情况下执行此操作。

Linux 和 OS X

使用 ssh-copy-id 命令:

ssh-copy-id -i /home/user/.quantumatk/QuantumATK_rsa username@HOST.CLUSTER.EDU

在出现提示时输入您的密码。您的公共秘钥现在应该被添加到集群的 /home/user/.ssh/authorized_keys 文件里。

Windows

您需要登录集群,手动添加秘钥。

打开您电脑上的 PuTTY,输入远程的主机名称并点击 Open。

图 21 用合适的主机名称替代 HOST.CLUSTER.EDU。

测试无密码的 SSH 连接

测试无密码的 SSH 连接

我们在这里提供了一个 QuantumATK 脚本,它将尝试建立与远程集群的连接,并报告连接是否成功建立。

1    from NL.ComputerScienceUtilities.SSHConnection import SSHConnection
2    import os
3    
4    # -------------------------------------- #
5    # Edit only these 3 settings
6    # -------------------------------------- #
7    key_dir  = 'path_to_SSH_keys'
8    hostname = 'HOST.CLUSTER.EDU'
9    username = 'my_user_name'
10   
11   # -------------------------------------- #
12   port = 22
13   ok = os.path.isdir(key_dir)
14   if ok:
15       print("Sucessfully found local dir with SSH keys.")
16       con = SSHConnection(hostname, port, username, key_dir)
17       con.connect()
18       ok = con.isConnected()
19       
20       if ok:
21           print("Connection succesful.")
22   else:
23       print("Error: Could not find local dir with SSH keys.")
24   # -------------------------------------- #
$ atkpython ssh_test.py
Successfully found local dir with SSH keys.
Connection successful.

提示

您现在应该已准备好使用 QuantumATK 作业管理器在远程集群上运行的 QuantumATK 作业,请参阅教程 Job Manager for remote execution of QuantumATK scripts

参考