Cannot connect via SSH, access denied

I have remoteit running in a Docker container on a Raspberry Pi running Ubuntu. I am trying to access this device from several Windows machines. I have the SSH service set up for this device in the remoteit web app. The SSH service connects in remoteit, but when I attempt to use PuTTY to SSH in with the public endpoint information from remoteit I get “Access denied” when I try to login with the username and password. I’ve also tried to login with Windows’ built in SSH command and I get “Permission denied, please try again” when I enter the password. SSH is definitely set up and working on this device. I can SSH to it with no problem on my local network and login with the credentials I have. It can also SSH to itself using 127.0.0.1. But for some reason the same credentials that work locally are not accepted when I try to login remotely with remoteit. It’s clearly making it to the Pi if it’s asking for login credentials but It will not accept them remotely. Please help.

When using remoteit in a Docker container if you have the SSH service on that device setup to 127.0.0.1 then it will ssh into the remoteit container itself. If you are trying to ssh into the docker host then you need to add another SSH service and use the Docker gateway address. Depending on your Docker environment you might be able to use host.docker.internal as the hostname for the new SSH service. If that doesn’t work and you are using the default Bridge networking in Docker then you can try to use 172.17.0.1 as the ip address. If you are using a different subnet for the Docker Bridge network like 10.1.0.0 and you Docker environment doesn’t support the host.docker.internal by default you can add it to your container runtime command line with --add-host host.docker.internal:host-gateway . This will tell Docker to add whatever the gateway ip address is for your container to the host.docker.internal DNS name. That way you can use host.docker.internal in SSH service as well.

2 Likes

Thanks you so much! This is exactly the information I needed. I used the extra_hosts parameter in my compose file to add host.docker.internal to the container’s hosts and changed my ssh service’s host to host.docker.internal as well and it’s all working perfectly now.

3 Likes