What is the problem?
I created a boot SD card, flashed the current octopi image using Etcher on MacOS. On the mac i edited the supplicant file. I added an empty file "ssh" to the boot folder.
I move the SD card to the brand new RPi 4B and it comes up and connects to Wifi. Ping works. ping octopi.local works. ssh pi@ or email@example.com does not work. Any ssh attempt gets "Connection refused".
What did you already try to solve it?
I move the SD card back to my Mac and the ssh file is gone from the boot folder.
I create the ssh file again. I eject the SD card and remove it. Then I put it back into the Mac. I verify that the ssh file is there. It is.
I tried creating the ssh file using touch as well as saving an empty text file, no difference.
Additional information about your setup
OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible
Everything involved is up to date and/or new. I brought the RPi 4B up on Raspian first. Got ssh and VNC both working.
The message above was mostly due to an IP address mixup. However:
The startup instructions for octopi should include the need to put the empty ssh file in boot.
Then, on MacOS, ssh will not connect because "strict checking" is selected. I created a config file in .ssh that turns off strict checking for local hosts. The information came from here: macos - Disable StrictHostKeyChecking in ssh - Ask Different
After getting into SSH, I ran rasp-config. Enabling VNC did not work. Select Option 8, update raspi-config first. Then VNC can be enabled.
No, they shouldn't, because OctoPi ships with this file already included. And I'm absolutely certain about this because I routinely flash stable OctoPi version 0.15.0, 0.15.1, 0.16.0, 0.17.0 and 0.18.0 as part of the update tests.
If the file was missing on your flash, either you caught a broken (nightly?) image, something with your card was off or your file browser didn't show you this file for some reason. But stable OctoPi ships with SSH enabled 100%.
VNC is a desktop thing and the default OctoPi image(s) don't include/enable the desktop.