
# 如何通过设置环境变量以采集和迁移OpenSSH版本低于7.0的Linux主机
迁移中心支持采集和迁移OpenSSH版本不低于7.0的Linux主机。如果源端主机使用的是低于7.0版本的OpenSSH，需要在安装迁移中心Agent的主机上添加环境变量，以确保兼容性。
#### 风险提示
使用不安全的SSH算法（如SSHv1、弱加密套件等）将导致以下风险：
- 数据泄露：传输内容可能被中间人攻击者窃取或篡改，导致敏感信息泄露。
- 身份冒充：服务器认证机制失效，攻击者可能伪装成目的端主机，进行恶意操作。
- 密钥破解：弱加密算法容易被暴力破解，导致密钥泄露，进一步威胁系统安全。
建议：
- 升级至SSHv2，并禁用已淘汰的算法（如arcfour, CBC模式, MD5哈希等）。
- 定期审查和更新SSH配置，确保使用最新的安全标准和加密算法。
 
#### 操作步骤
请根据安装MgC Agent的实际系统版本进行操作。
- [Windows版本]
  1. 关闭MgC-Agent。 
     1. 打开安装MgC Agent的Windows主机任务管理器。
     
     2. 切换到"**服务**"选项卡，找到MgC-Agent服务。
     
     3. 右键单击该服务，选择"停止"以关闭MgC Agent。
     
     
     
     
  
  2. 新增系统环境变量。
     
     1. 按下"**Win+R** "键，打开**运行**窗口。
     
     2. 输入"**sysdm.cpl** "，按Enter键，打开**系统属性**窗口。
     
     3. 选择"**高级** "选项卡，单击"**环境变量** "按钮，打开**环境变量**窗口。
     
     4. 在"**系统变量** "区域，单击"**新建** "按钮，添加下表中的三个变量。变量值为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 |
           
        
     
     5. 添加完所有变量后，单击"**确定**"，保存环境变量。
     
     
     
     
  
  3. 重启MgC-Agent。
     
     1. 打开MgC Agent所在主机的"任务管理器"。
     
     2. 切换到"服务"选项卡，找到名为"MgC-Agent "的服务，鼠标右键，单击"开始"，即可手动启动MgC Agent进程。
     
     3. 重新打开MgC Agent，进入登录页面。
     
     
     
     
  
  4. （可选）如果按照以上步骤配置完成后，在后续进行采集和迁移时仍然报错。请继续按照以下步骤配置Windows主机的环境变量。 
     1. 在MgC Agent的日志文件"C:\\MgC-Agent\\logs\\agent-server\\run.log"中，找到包含以下错误信息的行：
        - algorithmName="server_host_key"
        
        - algorithmName="PubkeyAcceptedAlgorithms"
        
        - algorithmName="mac.c2s"
         
     
     2. 查看"serverProposal="后的算法列表，找出不在[默认变量值]中的算法。然后参考[表2]，根据实际的错误信息选择对应的处理方法。
        例如，"serverProposal="后的算法列表中包括"ed25519"，但默认变量值中没有包含该算法。
         表2错误信息和处理方法 
        | 错误信息                                                                                                                                                                                                                                     | 处理方法                                                                                                                                   |
        |:---|:---|
        | - algorithmName="server_host_key"  - algorithmName="PubkeyAcceptedAlgorithms"   | 将不在默认变量值中的算法（如：ed25519）分别添加到[步骤2.]新建的"EDGE_JSCH_SERVER_HOST_KEY"和"EDGE_JSCH_CLIENT_PUB_KEY"两个变量的变量值中。 |
        | algorithmName="mac.c2s"                                                                                                                                                                                                                  | 将不在默认变量值中的算法（如：ed25519）添加到[步骤2.]新建的"MGC_MAC_ALGORITHM"变量的变量值中。                                        |
           
        
     
     3. 添加完变量值后，单击"**确定**"，保存环境变量。
     
     4. 参考[步骤3.]重启MgC-Agent，然后继续执行采集和迁移。
     
     
     
     
   
- [Linux版本]
  1. 在安装MgC Agent的主机，执行如下命令，关闭MgC-Agent。 
     ```
     sh /opt/cloud/MgC-Agent/scripts/stop.sh
     ```
     
     
  
  2. 分别执行以下三条命令，新增三个系统环境变量。其中变量值为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
     ```
     
     
  
  3. 执行如下命令，进入MgC Agent安装目录中的scripts目录。
     
     ```
     cd /opt/cloud/MgC-Agent/scripts/
     ```
     
     
  
  4. 执行如下命令，启动MgC Agent。 
     ```
     ./start.sh
     ```
     当出现如下图所示提示时，表示MgC Agent已经启动。
     ![](https://support.huaweicloud.com/tg-mgc/zh-cn_image_0000002238845353.png "点击放大")
     
     
  
  5. 执行如下命令，查看MgC Agent进程。
     
     ```
     ps -ef |grep mgcagent
     ```
     当出现如下图所示提示时，表示MgC Agent进程已经启动。
     ![](https://support.huaweicloud.com/tg-mgc/zh-cn_image_0000002238845569.png "点击放大")
     
     
  
  6. （可选）如果按照以上步骤配置完成后，在后续进行采集和迁移时仍然报错。请继续按照以下步骤配置Linux主机的环境变量。 
     1. 在MgC Agent的日志文件"/opt/cloud/MgC-Agent/logs/agent-server/run.log"中，找到包含以下错误信息的行：
        - algorithmName="server_host_key"
        
        - algorithmName="PubkeyAcceptedAlgorithms"
        
        - algorithmName="mac.c2s"
         
     
     2. 查看"serverProposal="后的算法列表，找出不在[步骤2.]提供的默认变量值中的算法。然后参考[表3]，根据实际的错误信息选择对应的处理方法。
        例如，"serverProposal="后的算法列表中包括"ed25519"，但默认变量值中没有包含该算法。
         表3错误信息和处理方法 
        | 错误信息                                                                                                                                                                                                                               | 处理方法                                                                                                                                  |
        |:---|:---|
        | - algorithmName="server_host_key"  - algorithmName="PubkeyAcceptedAlgorithms"   | 将不在默认变量值中的算法（如：ed25519）分别添加到[步骤2.]新建的"EDGE_JSCH_SERVER_HOST_KEY"和"EDGE_JSCH_CLIENT_PUB_KEY"两个变量的变量值中。 |
        | algorithmName="mac.c2s"                                                                                                                                                                                                            | 将不在默认变量值中的算法（如：ed25519）添加到[步骤2.]新建的"MGC_MAC_ALGORITHM"变量的变量值中。                                        |
           
        
     
     3. 参考[步骤3.]\~[步骤5.]重启MgC-Agent，然后继续执行采集和迁移。
     
     
     
     
   
