Last updated: September 7, 2026. Documentation and connection requirements checked against the official OpenAI and Apple sources linked below.
If Codex Remote SSH cannot see your remote Mac, first make ordinary SSH login work, then make sure the remote login shell can find Codex. This order applies when you use Windows, a school computer, or an older Mac to work on a project that needs macOS.
This guide is for you if:
- You have Windows but your course project needs macOS or Xcode.
- You already received remote Mac login details but do not know how to add the host to Codex.
- Codex says it is connected, yet files and commands still appear to run on your local computer.
basic SSH → host discovery → remote Codex → remote project folder → smallest safe task
Do not begin by changing AI settings or troubleshooting Xcode. If the SSH door is not open, Codex cannot act as the assistant inside the remote room.
First, separate Remote SSH from Remote Control
Codex Remote SSH and Remote Control solve different problems. Remote SSH lets the desktop application use a remote computer’s file system and shell through an SSH connection. Remote Control is a different workflow for controlling or continuing work with a Codex session from another device.
The distinction matters because a successful ordinary terminal login does not automatically mean Codex will show the machine. Codex uses the SSH configuration available to the computer running the desktop application. It needs a usable host entry, not only a server address, username, and password copied into a note.
The official Codex Remote connections documentation explains how remote hosts are discovered from SSH configuration and how remote project work is started. Treat the SSH configuration as the classroom directory: the host alias is the room number, the hostname is the building address, and the username is the student name on the attendance list.
Why does Codex fail to find an SSH host? Usually, the desktop application cannot read a usable SSH host entry, the entry has a syntax problem, or the host is stored somewhere different from the SSH configuration used by that computer. A terminal connection made with a one-off command does not guarantee that Codex can discover the same machine.
Step one: test the SSH door outside Codex
Before opening Codex, test the connection from the same computer where you run the desktop application. This is important on Windows and shared school computers because a terminal, a virtual environment, and a desktop application can use different user accounts or configuration files.
On Windows, open a terminal that provides the SSH client available on your computer. Use the host details supplied for your remote Mac, or use the configured alias if one already exists. Do not disable host-key checking just to make the first connection easier. A host fingerprint is part of the identity check for the remote machine.
The result normally falls into one of these groups:
| What you observe | What it usually means | Low-risk next action | Stop condition |
|---|---|---|---|
| The connection times out | The address, network path, or SSH service is unreachable | Recheck the hostname, port supplied by the administrator, and whether Remote Login is enabled | Stop if you would need to expose unrelated ports or bypass school network rules |
| The connection is refused | The host is reachable, but the SSH service is not accepting the request | Ask the Mac administrator to confirm the approved Remote Login setting | Stop before changing firewall or router settings yourself |
| The username is rejected | The Mac does not recognize that account for remote login | Confirm the exact account name and permission | Stop if you are tempted to use another person’s account |
| Password or key authentication fails | The account is known, but the selected authentication method is not accepted | Re-enter the approved credentials or check the key used by this computer | Stop before sending private keys or passwords through chat |
| You reach a shell prompt | The basic SSH layer works | Record the working host alias and continue to Codex discovery | Do not assume the project will run remotely yet |
**Reminder:** A successful SSH prompt only proves that you entered the building. It does not prove that Codex knows the room, that the remote shell can start Codex, or that your project folder is remote.
Step two: make the host visible to Codex
Once basic SSH works, inspect the SSH configuration used by the same desktop environment. You are looking for a named host entry that gives Codex enough information to connect consistently.
A simple entry may contain a host alias, a hostname, a user, and an approved authentication method. The exact location and interface can vary by operating system and application release, so follow the current official Remote connections instructions rather than copying an old interface guide.
Think of the difference this way:
- Address only: you know where the building is.
- Username and password only: you have a student identity but no room assignment.
- SSH host entry: the directory has the building, room, identity, and connection method in one place.
A host list that remains empty is not an AI model problem. Check, in order:
- The terminal test was made on the same computer and user account.
- The host entry is in the SSH configuration that Codex reads.
- The alias does not contain a spelling or formatting error.
- The hostname and username match the working terminal test.
- The selected authentication method is available to the desktop application.
Step three: confirm Codex exists on the remote Mac
Does the remote Mac need Codex installed first? In practice, the remote environment must be able to start the Codex command or service that the desktop application expects. Installing Codex only on your Windows computer does not install it on the remote Mac.
The desktop application can use SSH to reach the Mac and start the remote component. That means the remote login shell must be able to locate the required command. A command that works in an interactive terminal may still fail during an automated SSH session if its installation directory is added only by a shell startup file that is not loaded for that session.
Use the official Codex usage and account requirements and the current installation instructions provided there. Confirm these items on the remote Mac:
- The official Codex installation is complete.
- The remote account is authorized to use it.
- The command is available to the account used by SSH.
- The command can start without relying on a graphical login window.
- The remote shell can find the installation directory through its
PATH.
| Environment | What must be true | How to verify | Common mistake |
|---|---|---|---|
| Local Windows computer | The desktop application and local tools can start normally | Open the application and test local terminal access | Assuming local installation controls the remote Mac |
| SSH session on the Mac | The approved account can log in and reach a shell | Run a harmless identity or working-directory check | Testing only with a different Mac account |
| Remote Codex environment | The remote shell can find the Codex command and authorization is valid | Use the official installation and account guidance | Installing locally but not remotely |
| Remote project workspace | The selected folder exists and is writable by the account | Create or inspect a disposable test file | Selecting a local folder while watching a remote status indicator |
Step four: select a genuinely remote project folder
A green connection indicator is not proof that your task moved to the Mac. You must select a project folder through the connected SSH host and confirm its path.
Create a disposable test folder on the remote Mac. Keep it free of course credentials, private keys, personal documents, and production code. Inside it, create a harmless text file with a unique name. Ask Codex to inspect the folder and report its current path. Then run a non-destructive environment check that identifies the operating system or machine context.
You are checking four separate facts:
- Codex can read the remote directory.
- The reported path belongs to the remote Mac.
- A file created through the remote project view remains in that remote folder.
- A command runs in the remote shell rather than in your Windows terminal.
The desk analogy is useful here. You may have a video call with a classroom while still writing at your own desk. The connection indicator is the call. The selected project folder and command output show where the actual work happens.
Keep the first test file disposable. Once the path and command location are confirmed, close it and open a clean copy of your course project. For a general overview of remote macOS development from a PC, Apple’s remote macOS build documentation provides useful context, but it does not replace the SSH and Codex checks in this guide.
Step five: run one reversible learning task
Your first real task should be small enough to undo without guessing. A good sequence is:
- Open a sample project that contains no secrets.
- Ask Codex to describe the folder structure without editing files.
- Request one small change in a clearly identified file.
- Inspect the difference before accepting it.
- Run the project’s own harmless validation command.
- Confirm that the changed file exists in the expected remote directory.
- Disconnect and reconnect, then check that the change is still present.
Your acceptance test passes only when all four conditions are true:
- The project path is on the remote Mac.
- The file change is visible and reversible.
- The command output comes from the remote environment.
- The files remain in the expected location after reconnecting.
For students using a Windows computer, it is reasonable to keep the editor and notes local while using the remote Mac for macOS-specific commands. The boundary must remain visible: local files are not automatically synchronized with the remote folder unless you deliberately use an approved transfer or version-control workflow.
Decide whether to keep the remote setup
Use these conditions after the smallest task works:
- If your course requires macOS, Xcode, or a Mac-only tool and you use it regularly, keep the remote Mac as a planned development environment.
- If you only need macOS for occasional checks, use a local workflow for general study and connect remotely only for those checks.
- If your project contains sensitive school or personal data, first confirm the storage, access, and account rules before uploading or cloning it.
- If your connection is unstable or your course requires uninterrupted local hardware access, keep a second development path instead of relying on Remote SSH alone.
- If ordinary SSH works but Codex discovery fails, fix the host entry before changing the project.
- If the host appears but remote Codex cannot start, fix installation, authorization, or
PATHon the Mac. - If commands run locally, reopen the project from the remote SSH host and repeat the path test.
If you are comparing a school computer, an old personal Mac, and a managed remote machine, review the available MACGPU remote Mac options only after you know which access method and project permissions your course requires. A rented environment can be more appropriate for a short course or a focused project than buying hardware immediately, but you should still verify SSH access, folder persistence, and the smallest task before committing.
The main weakness of a school computer is restricted installation and changing permissions. An old Mac may lack the required software support or have unreliable storage. A generic remote setup may hide where files are saved and who can access them. With MACGPU, the relevant question is not simply whether a Mac is available; it is whether the delivered account, SSH method, project directory, and permissions pass your own acceptance test. If you need a temporary environment, you can inspect a MACGPU Mac rental option and apply the same checks before moving a real course repository.
Start with a disposable project, not your final submission. Once the remote path, shell, Codex command, and file persistence all behave as expected, you have a dependable basis for learning instead of merely seeing a connected status badge.