https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html
Headless PI | SSH / Wifi / Ethernet
https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html
Raspberry Pis are so convenient because they're inexpensive and small, but connecting one to its own monitor, keyboard and mouse requires a lot more space and money. If you're just trying to program on the Pi or use it to control electronics such as lights, motors and sensors, there's no need to connect it to a display or input devices because you can control the system remotely, using a VNC or SSH client on your main computer. We call this screenless install a headless Raspberry Pi setup.
By default, the Raspberry Pi's official operating system, Raspberry Pi OS (formerly known as Raspbian), installs with all forms of remote access disabled. But the good news is that you don't need to connect to a monitor and keyboard in order to turn them on. By following the instructions below, you can create a headless Raspberry Pi that's ready for remote access before you boot it up for the very first time. If you have a monitor and keyboard on hand, you can also see our guide on How to Set Up a Raspberry Pi for the First Time.
Installing Raspberry Pi OS on Your microSD card
\1. Insert a microSD card into your computer. Your card should be 8GB or larger (the lite version of Raspberry Pi OS will use less space). We have a list of the best microSD cards for Raspberry Pi to help you choose one that optimizes performance.
\2. Download, install and run Raspberry Pi Imager.
\3. Click the Choose OS button. A menu appears.
\4. Select Raspberry Pi OS (32-bit) from the OS menu.
\5. Click Choose SD card and select your card from the menu.
\6. Click Write. This process will take several minutes as Raspberry Pi Imager downloads Raspberry Pi OS and burns it to your microSD card.
If you were not setting up a headless Raspberry Pi, you can just pop the card in, connect your Pi to a monitor, keyboard, power source and pointing device and boot it up. However, that's not our goal here.
\7. Write an empty text file named "ssh" (no file extension) to the root of the directory of the card. When it sees the "ssh" on its first boot-up, Raspberry Pi OS will automatically enable SSH (Secure Socket Shell), which will allow you to remotely access the Pi command line from your PC.
\8. Configure a network connection for your Raspberry Pi.
Though you've enabled SSH, which will let you log in and issue terminal commands, you still need a way to actually reach your Pi. You can connect via Wi-Fi / Ethernet, direct Ethernet connection or direct USB connection (Pi Zero only). Here are instructions for each.
Headless Wi-Fi / Ethernet
To setup a Wi-Fi connection on your headless Raspberry Pi, create a text file called wpa_supplicant.conf, and place it in the root directory of the microSD card. You will need the following text in the file.
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
scan_ssid=1
ssid="your_wifi_ssid"
psk="your_wifi_password"
}
Change the country to "GB" for the UK or to another country code for a different country, and enter your actual SSID and password. Upon boot up, Raspberry Pi OS will log you into that network. However, if you're on a public Wi-Fi network that requires you to click "Ok" on a splash page before you get Internet, this method won't work.
Prefer to use Ethernet? If you plug your Raspberry Pi directly to a wired network, you should be able to access it by its name (raspberrypi or raspberrypi.local) without changing any other files.
Direct USB Connection (Pi Zero / Zero W Only)
My favorite way to connect is via a direct USB connection, plugging my Pi Zero W directly into a port on my PC. This method is great, because it works no matter where you are (even if there's no available Wi-Fi), and it provides both power and a connection to your Pi, over a single cable. However, you can only do this on a Pi Zero or Zero W.
Direct Ethernet Connection
If your PC has a spare Ethernet port or you have an Ethernet-to-USB dongle, you can use a network cable to go directly from your Pi to your computer. Just make sure that you have Bonjour installed on your PC and SSH enabled on the Pi (see above). Then, you can just connect the two devices over Ethernet.
If you want the Raspberry Pi to get its Internet connection from your PC over the Ethernet port, you need to do the following in Windows 10:
\1. Navigate to the Network Connections menu, which is part of the old-school Control Panel. You can get to this screen by going to Settings->Network & Internet->Wi-Fi and then clicking "Change Adapter Settings" on the right side of the screen. This works whether you are sharing an Internet connection that comes to your PC from Wi-Fi or from Ethernet.
2. Right-click on the adapter that's connected to the Internet, and select properties.
3. Enable "Allow other network users to connect" on the "Sharing" tab.
4. Select the Ethernet port that is connected to the Raspberry Pi from the "Home networking connection" menu, and click Ok.
Connecting via SSH
After you have the Pi connected to your network or directly to your PC, you'll need to establish an SSH connection.
\1. Download and install Putty if you don't already have it. Putty is the leading SSH client for Windows.
\2. Enter raspberrypi or raspberrypi.local as the address you wish to connect to in Putty, and click Open. You usually need to add the .local if the Pi is directly connected to your PC via USB or Ethernet cable.
\3. Click Ok if you get a security warning alert. It's not a problem.
\4. Enter pi as your username and raspberry as your password. You may want to change these later.
Now you're connected at the command prompt, but if you want to access the GUI, complete with a desktop and floating windows, you'll need to enable VNC.
Enabling and Connecting over VNC
1. Enter sudo raspi-config at the command prompt.
A configuration app opens.
\2. Select Interfacing Options (number 5 on the list)
\3. Select VNC (number 3 on the menu)
\4. Select Yes.
\5. Hit Enter to acknowledge the VNC server is enabled.
\6. Select Finish
On your PC:
\1. Download, install and launch VNC Viewer.
\2. Select New connection from the File menu.
3. Enter raspberry.local in the "VNC Server" field. If this does not work, try again with the name "raspberrypi" without .local.
\4. Click Ok.
\5. Double-click on the connection icon to connect.
\6. Click Ok if you are shown a security warning.
\7. Enter the Pi's username and password when prompted. The defaults are username: pi and password: raspberry. Click Ok.
Your Raspberry Pi desktop will then appear in a window on your main computer's desktop. You'll be able to control everything from there.