如何通过设置环境变量以采集和迁移OpenSSH版本低于7.0的Linux主机
迁移中心支持采集和迁移OpenSSH版本不低于7.0的Linux主机。如果源端主机使用的是低于7.0版本的OpenSSH,需要在安装迁移中心Agent的主机上添加环境变量,以确保兼容性。
操作步骤
请根据安装MgC Agent的实际系统版本进行操作。
- 关闭MgC-Agent。
- 打开安装MgC Agent的Windows主机任务管理器。
- 切换到“服务”选项卡,找到MgC-Agent服务。
- 右键单击该服务,选择“停止”以关闭MgC Agent。
- 新增系统环境变量。
- 按下“Win+R”键,打开运行窗口。
- 输入“sysdm.cpl”,按Enter键,打开系统属性窗口。
- 选择“高级”选项卡,单击“环境变量”按钮,打开环境变量窗口。
- 在“系统变量”区域,单击“新建”按钮,添加下表中的三个变量。变量值为MgC提供的默认值,请根据源端系统实际支持的算法列表进行调整。
表1 默认变量值 变量名
变量值(默认值)
EDGE_JSCH_SERVER_HOST_KEY
-Djsch.server_host_key=ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256
EDGE_JSCH_CLIENT_PUB_KEY
-Djsch.client_pubkey=ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256
MGC_MAC_ALGORITHM
hmac-sha2-512,hmac-sha2-256,hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,umac-128@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96,aes256-gcm@openssh.com, aes128-gcm@openssh.com
- 添加完所有变量后,单击“确定”,保存环境变量。
- 重启MgC-Agent。
- 打开MgC Agent所在主机的“任务管理器”。
- 切换到“服务”选项卡,找到名为“MgC-Agent ”的服务,鼠标右键,单击“开始”,即可手动启动MgC Agent进程。
- 重新打开MgC Agent,进入登录页面。
- (可选)如果按照以上步骤配置完成后,在后续进行采集和迁移时仍然报错。请继续按照以下步骤配置Windows主机的环境变量。
- 在MgC Agent的日志文件“C:\MgC-Agent\logs\agent-server\run.log”中,找到包含以下错误信息的行:
- algorithmName="server_host_key"
- algorithmName="PubkeyAcceptedAlgorithms"
- algorithmName="mac.c2s"
- 查看“serverProposal=”后的算法列表,找出不在默认变量值中的算法。然后参考表2,根据实际的错误信息选择对应的处理方法。
例如,“serverProposal=”后的算法列表中包括“ed25519”,但默认变量值中没有包含该算法。
- 添加完变量值后,单击“确定”,保存环境变量。
- 参考步骤3.重启MgC-Agent,然后继续执行采集和迁移。
- 在MgC Agent的日志文件“C:\MgC-Agent\logs\agent-server\run.log”中,找到包含以下错误信息的行:
- 在安装MgC Agent的主机,执行如下命令,关闭MgC-Agent。
sh /opt/cloud/MgC-Agent/scripts/stop.sh
- 分别执行以下三条命令,新增三个系统环境变量。其中变量值为MgC提供的默认值,请根据源端系统实际支持的算法列表进行调整。
echo "export EDGE_JSCH_SERVER_HOST_KEY=-Djsch.server_host_key=ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256" >> /opt/cloud/MgC-Agent/scripts/setenv.sh
echo "export EDGE_JSCH_CLIENT_PUB_KEY=-Djsch.client_pubkey=ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256" >> /opt/cloud/MgC-Agent/scripts/setenv.sh
echo "export MGC_MAC_ALGORITHM=hmac-sha2-512,hmac-sha2-256,hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,umac-128@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96,aes256-gcm@openssh.com, aes128-gcm@openssh.com" >> /opt/cloud/MgC-Agent/scripts/setenv.sh
- 执行如下命令,进入MgC Agent安装目录中的scripts目录。
cd /opt/cloud/MgC-Agent/scripts/
- 执行如下命令,启动MgC Agent。
./start.sh
当出现如下图所示提示时,表示MgC Agent已经启动。
- 执行如下命令,查看MgC Agent进程。
ps -ef |grep mgcagent
当出现如下图所示提示时,表示MgC Agent进程已经启动。
- (可选)如果按照以上步骤配置完成后,在后续进行采集和迁移时仍然报错。请继续按照以下步骤配置Linux主机的环境变量。
- 在MgC Agent的日志文件“/opt/cloud/MgC-Agent/logs/agent-server/run.log”中,找到包含以下错误信息的行:
- algorithmName="server_host_key"
- algorithmName="PubkeyAcceptedAlgorithms"
- algorithmName="mac.c2s"
- 查看“serverProposal=”后的算法列表,找出不在步骤2.提供的默认变量值中的算法。然后参考表3,根据实际的错误信息选择对应的处理方法。
例如,“serverProposal=”后的算法列表中包括“ed25519”,但默认变量值中没有包含该算法。
- 参考步骤3.~步骤5.重启MgC-Agent,然后继续执行采集和迁移。
- 在MgC Agent的日志文件“/opt/cloud/MgC-Agent/logs/agent-server/run.log”中,找到包含以下错误信息的行: