After configuring a new Raspberry Pi Zero W, I have not been able to ssh into it over WiFi. The IP address is assigned and pingable, but I get 'connection refused' errors.
After some research, I discovered one possible solution is to replace the SSH host keys on the pi.
But it's a Catch-22, because I can't login to the pi to change the keys that I need to change to be able to log into the pi.
What can I do?
Why do I need to replace host keys?
Short answer: I don't know. I don't even know if that's the only or best solution or just one workaround. Host Keys are configured when ssh is configured. Did that configuration not run, or did it fail for some reason? One thing I did on both Pi's was added a dtoverlay=dwc2 line in config.txt to enable ethernet over USB. Could that have thwarted the boot/initialization sequence? Will run some experiments and post info if I learn anything new.
Configuration details: The way I configured my Pi's are as follows: Using Etcher.app on macOS, I flashed an SSD card with the full desktop version of Raspian, 2018-11-13-raspbian-stretch-full.img, downloaded from the Raspian site, and installed it on a Pi Zero W and a Pi 3B+, both headless, and used the headless approach to configuring WiFi and ssh (i.e. touched ssh in /boot and created wpa_supplicant.conf in /boot).
I didn't have this problem when I similarly installed Raspian lite (on my Pi 3B, about a month ago, 2018-10-09-raspbian-stretch-lite.img
Follow-up to @Milliway's comment below: This is the Reddit thread containing post that gave me the idea that regenerating host keys might fix the problem:
https://www.reddit.com/r/raspberry_pi/comments/704v5y/ssh_connection_refused_off_a_headless_setup/
ssh connection refusedinto the search box throws up 168 matching questions - some of which even have accepted answers, that strikes me that The answer is out there, Neo, and it's looking for you, and it will find you if you want it to. a little research may have saved some effort all around. – SlySven Dec 21 '18 at 21:00ssh -vvv pi@<ip addr>when the connection is refused? – Ingo Dec 23 '18 at 22:15dtoverlay=dwc2and it works again? – Ingo Dec 24 '18 at 00:12