SSH连接管理
概述
SSH连接是MindStudio与远程服务器建立远程登录会话的功能。SSH连接安全性高并且可以进行数据传输,便于MindStudio某些计算量较大的功能可以通过SSH连接来共享远端服务器的计算资源。
使用约束
为了安全起见,建议对SSH连接到的服务器进行以下加固操作:
- Linux系统用户的口令加密算法,推荐使用SHA256或者SHA512。
- SSH服务端配置文件中,对以下配置项进行加固:
- MACs:指定允许在SSH-2中使用哪些消息摘要算法来进行数据校验,多个算法之间使用逗号分隔。目前支持算法:hmac-sha2-256、hmac-sha2-512、hmac-sha2-256-etm@openssh.com以及hmac-sha2-512-etm@openssh.com。
- Ciphers:指定SSH-2允许使用的加密算法,多个算法之间使用逗号分隔。禁止CBC模式的加密算法用于SSH2.0协议中(如AES128-CBC、AES256-CBC)。目前支持算法:aes128-gcm@openssh.com和aes256-gcm@openssh.com。
- HostkeyAlgorithms:指定SSH-2允许使用的身份认证公钥算法,多个算法之间使用逗号分隔。目前支持算法:ssh-ed25519(要求OpenSSH6.5级以上版本)、rsa-sha2-512以及rsa-sha2-256。其中rsa的长度需大于等于3072bits。
- KexAlgorithms:指定SSH-2允许使用的密钥加密算法,多个算法之间使用逗号分隔。目前支持算法:curve25519-sha256、curve25519-sha256@libssh.org以及diffie-hellman-group-exchange-sha256。OpenSSH6.7开始支持curve25519密钥交换算法。
- PermitRootLogin:是否允许root登录。建议禁止root用户可以直接登录。
- MindStudio对工程内文件类型不做校验,需要确认上传文件的文件类型正确。
- 为了MindStudio客户端能连接,服务端需要配置如下算法:
ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com
macs hmac-sha2-256,hmac-sha2-512,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
hostkeyalgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256
kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
服务端修改方式参考如下:
- 执行如下命令编辑配置文件。
vi /etc/ssh/sshd_config
请用户修改文件对应行,如果找不到对应行,则新增即可。
- 重启ssh服务。
- Red Hat和OpenEuler系列的操作系统
service sshd restart
- Ubuntu系列的操作系统
service ssh restart
- Red Hat和OpenEuler系列的操作系统
- 执行如下命令编辑配置文件。
- 请保存好SSH用户名密码,不要共享给不信任的用户,以免造成环境破坏等影响。
- 为防止SSH暴力破解,建议用户在SSH端设置登录控制策略。
SSH配置入口
两种进入SSH配置界面方式如下所示,SSH配置界面如图1所示,界面参数解释如表1所示。
- 在菜单栏依次选择 进入SSH连接配置。
- 在欢迎界面依次选择 进入SSH连接配置。
SSH连接配置界面左侧展示SSH连接配置项别名,如果没有别名,显示格式为<username>@<host>:<port>,右键单击可修改别名。单击选中别名,可以在右侧详细面板中查看参数配置。
参数及图标 |
说明 |
---|---|
Lock the current connection |
选项置灰,用户不可操作。如果SSH连接被添加到集群管理中,则该选项会自动勾选,SSH连接被锁定,不可修改和删除。 |
Host |
连接目标地址(IP或域名)。 IP支持IPv4和IPv6。 说明:
不支持以fe80开头的IPv6地址,fe80开头的IPv6地址是link-local地址,只能在子网使用,且通过该地址登录设备需要输入IP对应的网口名,不符合MindStudio中SSH连接界面的输入格式。 |
Port |
连接目标地址的端口号,默认值:22。 |
User name |
登录目标地址的用户名。 |
Authentication type |
身份验证方式。有两种方式可选:
|
Password |
Authentication type选择验证方式为Password时显示,需要填写对应用户名的密码,勾选Save password复选框可以保存密码。 说明:
如果没勾选Save password。那么密码自动会在24小时后清除,届时再次使用到SSH会弹出密码输入框,需要再次输入密码方能执行SSH任务。 |
Private key file |
Authentication type选择验证方式为Key pair时显示,选择本地私钥文件。 |
Passphrase |
Authentication type选择验证方式为Key pair时显示,需要填写对应密语。勾选Save password复选框可以保存密语。 |
Test Connection |
单击该按钮测试连接是否成功。 |
新增SSH连接配置。 |
|
删除SSH连接配置,选中需要删除的SSH连接配置,单击该按钮删除。 |
申请密钥对
密钥对可以在本地服务器申请也可以在目标服务器申请,这里以本地服务器申请为例进行描述。
- 登录本地服务器,使用如下命令申请密钥对。
ssh-keygen -m PEM
或者
ssh-keygen -t rsa -m PEM
- 设置密钥对存放路径,如图2所示。
可以不设置存放路径,直接按回车键,则密钥对会存放在默认路径($home/.ssh/)。
- 设置及确认密语,如图3所示。
建议passphrase不为空且密语长度至少为5个字符。
设置完成后,按回车键,在默认路径($home/.ssh/)中生成私钥文件(id_rsa)和公钥文件(id_rsa.pub)。
- 使用以下命令将公钥复制至目标服务器,用于免用户密码校验登录。
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 目标服务器用户名@目标服务器IP地址
公钥复制在目标服务器的$home/.ssh/authorized_keys文件中。
删除SSH连接
- 参见SSH配置入口进入SSH连接配置界面。
- 选择要删除的SSH连接配置项,单击界面左侧导航栏上方按钮。
- 单击“OK”或“Apply”。
保存SSH密码
- 参见SSH配置入口进入SSH连接配置界面。
- 进入密码保存方式界面有如下方式:
- 在左边的导航栏选择 。
- 在搜索栏中输入“Passwords”。
图4 密码保存方式界面
- 选择密码保存方式。
- In KeePass
- Do not save,forget passwords after restart
- 单击“OK”或“Apply”。
开启SSH Remote Terminal窗口
通过开启SSH Remote Terminal窗口功能,可以在MindStudio IDE界面上对SSH连接环境进行命令行操作。
已有配置好的SSH连接,详细操作请参见新增SSH连接。
- 在菜单栏选择 。
弹出“Select Host to Connect”弹窗。
- 单击需要开启Remote Terminal窗口的SSH连接。
在MindStudio IDE界面下方显示远端窗口信息,可直接进行命令行操作。
图5 Remote Terminal
为防止SSH长时间保持会话可能存在的安全风险,建议用户在服务端设置SSH会话超时时间。