使用DSMI接口打开SSH服务
简介
若您在制作文件系统时未通过修改系统启动脚本的方式打开SSH服务,系统启动后,您可参考本章节使用DSMI接口进行打开。
Device的SSH服务处于关闭状态可提升系统安全性。
如果需要打开SSH,请确保SSH登录密码的复杂度和机密性。如果SSH登录密码出现泄露,攻击者可侵入Device对系统进行篡改,并可能导致系统内部敏感信息泄漏、系统无法得到预期的运行结果或系统无法正常运行等安全事件。
操作步骤
用户可通过调用DSMI接口“dsmi_set_user_config”打开Device侧的SSH服务,下面给出调用此DSMI接口的完整示例。
- 在Host侧以root用户新建调用DSMI接口的源码文件,例如命名为“dsmi_open_ssh.c”。
touch dsmi_open_ssh.c
“dsmi_open_ssh.c”文件中代码示例如下:
#include <stdlib.h> #include <stdio.h> #include "dsmi_common_interface.h" // DSMI相关接口所在头文件,存储路径为Host侧的/usr/local/Ascend/driver/include int main() { int ret; int dev_list[64] = {0}; int dev_cnt = 0; const char config_name[20] = "ssh_status"; unsigned int buf_size = 1; unsigned char buf = 1; // 0: disable 1:enable ret = dsmi_get_device_count(&dev_cnt); if (ret != 0) { printf("[%s] get dev_cnt test_fail value = %d \n", __func__, ret); return -1; } if (dev_cnt <= 0) { printf("[%s] get dev_cnt test_fail value = -1 , dev_cnt:%d \n", __func__, dev_cnt); return -1; } printf("[%s] dev_cnt:%d \n", __func__, dev_cnt); ret = dsmi_list_device(dev_list, dev_cnt); if (ret != 0) { printf("[%s] list device test_fail value = %d \n", __func__, ret); return -1; } for (int i = 0; i < dev_cnt; i++) { ret = dsmi_set_user_config(dev_list[i], config_name, buf_size, &buf); if (ret != 0) { printf("[%s, %d] dev_id:%d test_fail, value = -1 ret:%d \n", __func__, __LINE__, dev_list[i], ret); return -1; } printf("[%s, %d] dev_id:%d set %s:0x%x, buf_size:%d\n", __func__, __LINE__, dev_list[i], config_name, buf, buf_size); } return 0; }
- 执行如下命令,对“dsmi_open_ssh.c”文件进行编译。
gcc dsmi_open_ssh.c /usr/local/Ascend/driver/lib64/driver/libdrvdsmi_host.so -L. -I/usr/local/Ascend/driver/include -std=c99 -o open_ssh_tool
/usr/local/Ascend表示Driver组件的默认安装路径,请根据实际情况替换。
编译完成后,会生成可执行文件“open_ssh_tool”。
- 执行可执行文件“open_ssh_tool”,开启Device的SSH服务。
./open_ssh_tool
- 重启Host。
通过DSMI接口开启Device的SSH服务后,需要重启才能生效,请在Host侧执行如下命令进行重启操作。
reboot
- SSH服务开启后,系统默认的SSH服务占用的内存大小限制为50MB,若用户想取消此限制,可进行如下操作:
- 以HwHiAiUser用户登录Device,然后切换到root用户。
- 执行如下命令取消对SSH服务占用内存大小的限制。
cat /sys/fs/cgroup/memory/sshdmemory/cgroup.procs |xargs -n1 >>/sys/fs/cgroup/memory/cgroup.procs;rmdir /sys/fs/cgroup/memory/sshdmemory/
需要注意,每次Host重启后,都会恢复默认50MB的SSH服务内存限额。
父主题: 附录