Enabling SSH on RPi without screen - keystrokes for raspi-config?
I don't have a screen for my Raspberry Pi. I want to SSH into it, but I get Connection Refused, so I presume SSH is not enabled.
As advised in other questions I have looked at enabling the boot_enable_ssh.rc script on the sd card. However I don't have a boot directory in my OS (or it is not visible via the card reader in my iMac) - 2012-12-16-wheezy-raspbian.img.
I have also tried issuing the following commands via a usb keyboard:
pi [enter] raspberry [enter] sudo /etc/init.d/ssh start [enter] raspberry [enter]
But this hasn't worked. Now in some docs I see that raspi-config is the first thing to come on a newly booted RPi. Could someone tell me the keystrokes to enable SSH via raspi-config please? Or if I am on the wrong track, please advise. Thanks.
EDIT: In trying to follow this advice https://raspberrypi.stackexchange.com/a/1706/4373 I am not seeing an etc directory when mounting the SD card on my iMac. If I run ls from the terminal I only get the following:
bootcode.bin fixup.dat kernel.img start.elf cmdline.txt fixup_cd.dat kernel_cutdown.img start_cd.elf config.txt issue.txt kernel_emergency.img
Have I screwed up the imaging of the SD card?
I don't have my RPi at my current location, but as I recall, first time you boot Raspian Wheezy it shows a setup dialog (`sudo raspi-config`) where you can enable SSH. To see that, maybe you could follow the steps shown in this video: http://www.youtube.com/watch?v=nXvODj6YpAE ? I know it is a bit primitive approach, but I thought I would mention it :)
ssh is installed but not started by default on runlevel 2, the default for raspbian.
The sd card comes with 2 partitions. The 1st is vfat; the 2nd is ext3. You need some utility to access it from macosx.
1st google result for ext2 macosx:
The default raspberry distribution is now raspbian jessie, and uses
sysvinit. The command line is now
systemctl enable ssh.socket(although ssh should be enabled by default).
Note: I still have
/var/log/auth.logafter upgrading from wheezy to jessie; it may or may not be the case with a fresh jessie install.
Thanks, with the help of that link I can now see the partition. I don't have an ssh folder in rc2.d though. I have an S02ssh file (looks like a link) in the root of rc2.d.
K means kill; S means start. the init.d files are sourced with "stop" or "start" as argument depending on the name of the file.On my image from december 16 IIRC it was K.
OK, I'm in now - I was trying to connect to the wrong ip address. The RPi wasn't showing up from the Mac terminal but I could see it from my router config. page. So I will mark this answer as correct as it helped point me to the solution and will be useful to other mac users looking at their SD cards. As a side issue it would seem that the current distribution has SSH enabled by default.
@MNoit I haven't found any of the files you have mentionned ; i'm using buildroot raspberrypi_defconfig !!!
I can't see all the files you are talking about – Just like @Lemmy in his question. Will I find the boot.rc and the /etc/ directory and all that stuff if I see the second partition (ext3?). And the command line command `systemctl enable ssh.socket`... can I run it without a screen and without ssh connection (which I need to enable first...)
All you need is to place an empty file named 'ssh' onto the boot (FAT) partition of your SD card (no need to mount ext3). Tested with 2016-11-25-raspbian-jessie-lite.img.
More info about Nov '16 security update: https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/
This should be the accepted answer as of Dec '16. But please replace the link (which does not explain headless setup anyway) by the respective blog entry https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/
The boot partition is the one with a `start.elf` file. The linked blog post confused me by calling it the `/boot/` directory
I had the same issues using the wheezy image.
The goal is to have the Pi boot up so you can ssh into it from another system, without having to ever connect a monitor and keyboard.
The problem is that while the SSH service is enabled, as noted above, it hasn't been configured yet, so you can't connect even if networking is running. Here are the tasks to get this working:
Put the image on the SD card. (Covered elsewhere.)
Ensure that you can determine the TCP/IP address once your Pi boots.
hint: Look at your router to see what addresses have been assigned.
sshwill run and allow connections. Here's how I did it:
a. Mount the second SD Card partition, the big one with the
b. Create a file
c. Insert the following code into
etc/rc.localjust above the
if [ -e /etc/SSHFLAG ]; then /usr/sbin/update-rc.d -f ssh defaults /bin/rm /etc/SSHFLAG /sbin/shutdown -r now fi
The idea is that when your Pi boots, the SSHFLAG file triggers it to reconfigure ssh (regenerating the keys and starting the service), remove the flag file so it only happens once, and reboot your system. Worked for me, YMMV
After that, I had to add `/etc/init.d/ssh start` into `/etc/rc.local` file, so the SSH service starts.
Iván: Not sure why my solution failed for you. Most likely explanations are a) typo, or b) changes to the rpi ssh package. Probably not worth debugging. Your solution might not work if the ssh service hasn't been configured yet (i.e., if the keys haven't been generated).
From my yesterday experience: 2012-12-16-wheezy-raspbian.img (suggested as "official distribution") has SSH enabled by default. Get it from http://www.raspberrypi.org/downloads
You don't have to edit anything on card or start raspi-config in "blind mode".
Just make sure you use a correct IP address. Use your router DHCP web-interface to get IP from the table; use cable, not WiFi; make sure that SD card is OK (you may try another SD-card); make sure that SD card filesystem is OK (try to write image again and don't forget to "eject" card properly).
Got to this page via google after not using pi for a couple of months. After the recent update, ssh is disabled by default.
For the benefit of anyone doing a headless clean install of Jessie:
sudo nano /boot/ssh
test [or any other text]
sudo shutdown -r now
Done! All the best.
Remember to change your password and disable user 'pi' via ssh.
Just to update, there is a much simpler method for doing this.
As of the November 2016 release, Raspbian has the SSH server disabled by default. >You will have to enable it manually. This is done using raspi-config:
Enter sudo raspi-config in the terminal, first select Interfacing options, then >navigate to ssh, press Enter and select Enable or disable ssh server.
For headless setup, SSH can be enabled by placing a file named 'ssh', without any >extension, onto the boot partition of the SD card.
You have multiple partition on your SD card, and the files you are seeing from your Mac are those from the partition which is mounted as
/boot/on the Raspberry.
You should have another partition on the SD card that would store the root (aka
/) partition, with all
/etc/...stuff in it. Be sure to enable EXT3 filesystem support on your Mac to get this one available on Mac OS X.
Else I've just put this file on my boot partition and SSH started automatically. Link to boot_enable_ssh.rc
In fact, I've just found a Debian modification for the RPi on the net that had SSH enabled by default. I checked the boot partition and found this file!
tib20 has the answer for enabling SSH if you've lost it. Simply drop the file he linked straight into the boot partition and it works beautifully! Thank you for that. I had lost my SSH after changing the hostname on the pi.
I hear a lot of "couldn't find it on the network" issues. I'm going to suggest running this to find all the machines with the ssh port open.
nmap 192.168.0.1/24 -p 22 # change the 192.168.0.1 part to match the first 3 octets of your ip address # as seen via: ifconfig
This was very important to me as I do not have the admin password for the router I connect to. Now, I will say that even once I identified the ip address of my raspberry pi, I still couldn't connect even though nmap says the port was open. I immediately get a message of...
Connection closed by 192.168.0.116
I still haven't figured that one out.