-
-
Save gasi/5691565 to your computer and use it in GitHub Desktop.
# Install OpenSSH server and SSH client | |
yum install -y openssh-server | |
yum install -y openssh-clients | |
# Install passwd | |
yum install -y passwd | |
# Set root password | |
passwd | |
# TODO: Enter new root password | |
# TODO: Repeat new root password | |
# Test ssh | |
ssh root@localhost | |
# Enter root password when prompted | |
# ERROR: Connection to localhost closed. | |
# ERROR: Exit status 254 |
to fix, add to your docker file:
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
I also got "Exit status 254" when connecting to a Docker container of stackbrew/ubuntu:13.10 running openssh-server.
Changing UsePAM yes
to UsePAM no
inside /etc/ssh/sshd_config
solved it. Dunno what that setting does though.
I encountered the same problem.
Check out this: http://docs.docker.io/en/latest/examples/running_ssh_service/
At the bottom, it states the following:
For Ubuntu 13.10 using stackbrew/ubuntu, you may need do these additional steps:
change /etc/pam.d/sshd, pam_loginuid line ‘required’ to ‘optional’
echo LANG=”en_US.UTF-8” > /etc/default/locale
Changing UsePAM yes to UsePAM no inside /etc/ssh/sshd_config solved it.
Solved it for us too. Thanks.
You can check if it's a PAM issue by starting a container and overriding the CMD to run sshd in the foreground...
$ docker run -i -t -p 127.0.0.1::22 our-base-ubuntu:13.10 /usr/sbin/sshd -D -e
Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
Accepted password for fred from 192.168.42.1 port 40892 ssh2
PAM: pam_open_session(): Cannot make/remove an entry for the specified session
Received disconnect from 192.168.42.1: 11: disconnected by user
@pungoyal Thank you! It helped me too!
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
Thanks for the tip on UsePAM
. Works great! Been looking for a solution for like an hour. 👍
Still, I wonder why it does that.
I guess this PAM setting is not needed since docker 1.0.0
PAM setting is not needed +1
PAM setting is still needed (Docker 1.4, phusion/baseimage:latest). -1
For automating the passwd part
( sleep .1 ; printf "%s\n" "password" "password" ) | passwd
Then password could be easily editable through other means using Jinja during deployment or something...
Based on tutorial for @dotcloud docker base image (Ubuntu):
http://docs.docker.io/en/latest/examples/running_ssh_service.html