示例:SSH 密钥
您可以通过 NETCONF 和 YANG API 向测试代理添加 SSH 公钥。使用相应的私有密钥,您可以通过 SSH 登录测试代理。
SSH 密钥上的可用操作完整列表如下:
- 添加 SSH 密钥
- 修改 SSH 密钥
- 检查 SSH 密钥
- 列出 SSH 密钥
- 删除 SSH 密钥。
下面是添加和删除操作的示例。
添加 SSH 密钥
下面介绍如何创建新的 SSH 密钥。
with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: xml = """ <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <accounts xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <test-agents> <test-agent> <name>{test_agent}</name> <ssh-keys> <ssh-key> <name>{key_name}</name> <ssh-key-value>{key_value}</ssh-key-value> </ssh-key> </ssh-key> </test-agent> </test-agents> </account> </accounts> </config>""".format(account=args.netrounds_account, key_name=args.key_name, key_value=args.key_value, test_agent=args.test_agent) monitor = m.edit_config(target='running', config=xml, default_operation='merge') print "ok" if monitor.ok else monitor.errors
删除 SSH 密钥
如果要删除 SSH 密钥,请使用以下命令:
with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, hostkey_verify=False) as m: xml = """ <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <accounts xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://ncc.netrounds.com"> <account> <name>{account}</name> <test-agents> <test-agent> <name>{test_agent}</name> <ssh-keys> <ssh-key nc:operation="delete"> <name>{key_name}</name> </ssh-key> </ssh-key> </test-agent> </test-agents> </account> </accounts> </config>""".format(account=args.netrounds_account, key_name=args.key_name, test_agent=args.test_agent) monitor = m.edit_config(target='running', config=xml, default_operation='merge') print "ok" if monitor.ok else monitor.errors