UE4 Windows远程发布iOS之SSH登录Mac OS验证错误问题

问题:UE4远程登录Mac OS编译iOS,提示SSH验证错误
在这里插入图片描述UATHelper: Packaging (iOS): ERROR: Unable to determine home directory for remote user. SSH output:
UATHelper: Packaging (iOS): Host key verification failed.
PackagingResults: Error: Unable to determine home directory for remote user. SSH output:

问题原因
SSH远程登录是为了取代交互式登录每次输入密码比较繁琐的问题,但SSH登录第一次也是需要验证密码的。UE4配置远程登录Mac编译时并没有交互式输入密码的对话框,所以会返回验证错误。
解决办法
手动远程登陆一次Mac系统,之后只要网络环境不改变,一般不需要重新登录。
网上给出的解决方法一般是适合Mac OS或者Unix系统的

ssh-keygen -R 远程主机IP

这个命令在Windows系统下无法成功,返回
C:\Users\Administrator/.ssh/known_hosts 文件按没有找到

known_hosts文件是本机记录ssh验证过密码后的安全IP

Windows系统下解决这个问题最简单的办法是手动用SSH远程访问一次Mac系统,实际上,Mac OS的“远程访问”已经给出了访问方法。
在这里插入图片描述
只要在Windows系统的控制台下输入以上ssh命令,即可验证远程登陆密码,之后只要不改变网络环境,就可以一直有效了
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4中使用远程桌面(Remote Desktop)ActiveX控件需要进行一些额外的设置和步骤。下面是一个简单的示例,演示了如何在UE4中使用远程桌面ActiveX控件。 1. 首先,确保你的项目是基于C++的项目。在UE4编辑器中创建一个新的C++项目或将现有项目转换为C++项目。 2. 打开你的项目,然后在源文件目录中创建一个新的C++类,用于处理远程桌面操作。例如,创建一个名为"RemoteDesktopHandler"的类。 3. 在"RemoteDesktopHandler"类的头文件(.h)中,添加必要的包含文件和声明。例如,你可能需要包含"Windows.h"和"atlbase.h"等文件。 ```cpp #pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "RemoteDesktopHandler.generated.h" UCLASS() class YOURPROJECT_API URemoteDesktopHandler : public UObject { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category = "RemoteDesktop") bool InitializeRemoteDesktop(); // 添加其他需要的函数和成员变量 }; ``` 4. 在"RemoteDesktopHandler"类的源文件(.cpp)中实现相应的函数。在"InitializeRemoteDesktop"函数中,你可以使用远程桌面ActiveX控件的CLSID来创建和初始化控件实例,并进行其他必要的设置和操作。 ```cpp #include "RemoteDesktopHandler.h" #include "Windows.h" #include "atlbase.h" bool URemoteDesktopHandler::InitializeRemoteDesktop() { // 创建并初始化远程桌面ActiveX控件实例 CLSID clsid; HRESULT hr = CLSIDFromProgID(L"MsTscAx.MsTscAx", &clsid); // 远程桌面ActiveX控件的CLSID为"MsTscAx.MsTscAx" if (SUCCEEDED(hr)) { CComPtr<IUnknown> pUnknown; hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (LPVOID*)&pUnknown); if (SUCCEEDED(hr)) { // 进行其他必要的设置和操作 // 例如,获取控件接口并使用它执行远程桌面操作 // 你可以使用QueryInterface函数来获取其他接口 return true; } } return false; } ``` 5. 在UE4的蓝图或其他C++类中,创建或获取"RemoteDesktopHandler"的实例,并调用其函数来使用远程桌面ActiveX控件。 ```cpp URemoteDesktopHandler* RemoteDesktopHandler = NewObject<URemoteDesktopHandler>(); if (RemoteDesktopHandler->InitializeRemoteDesktop()) { // 远程桌面ActiveX控件已成功初始化,可以进行进一步的操作 } else { // 初始化失败,处理错误情况 } ``` 请注意,这只是一个简单的示例,实际上使用远程桌面ActiveX控件可能涉及更复杂的操作和步骤。具体实现方式可能因所使用的ActiveX控件和需求而有所不同。在使用ActiveX控件时,请确保了解相关文档和安全注意事项,并按照最佳实践进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值