2013-08-11 18 views
14

Ho letto un articolo che SSH Daemon Service. Ma io voglio correre su Centos6.4. Così ho impostato l'immagine di CentOS con quasi la stessa istruzione. Quindi mi collego al server centos sshd, ma la connessione viene chiusa immediatamente. Ecco il messaggio.Impossibile accedere a Centos sshd nella finestra mobile

ssh [email protected] -p 49164 
The authenticity of host '[localhost]:49164 ([127.0.0.1]:49164)' can't be established. 
RSA key fingerprint is 88:71:89:e5:30:91:78:5c:bf:cb:88:c2:5b:81:1a:b5. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added '[localhost]:49164' (RSA) to the list of known hosts. 
[email protected]'s password: 
Connection to localhost closed. 

Perché non riesco a collegarmi CentOS sshd server?

risposta

19

Se lo stesso problema si verifica qui, funziona correttamente se si disattiva PAM in sshd config.

Qui ci sono le linee interessate dal nostro Dockerfile

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 
+1

lavoro per me! Grazie! – holys

+0

È davvero una buona idea spegnere semplicemente il PAM? Non ho molta familiarità con ssh, ma PAM sta per "Pluggable Authentication Module", che sembra piuttosto utile. –

+1

Ho avuto un problema simile con PAM e risulta essere questo http://gaijin-nippon.blogspot.se/2013/07/audit-on-lxc-host.html "pam_loginuid.so' sembra essere rotto per contenitori in qualche modo. –

2

Avevo anche per generare chiavi server, prima che "ssh -v" sarebbe solo uscire immediatamente con

... 
debug1: SSH2_MSG_KEXINIT 
Connection closed by ... 

Ecco il mio lavoro (1.3.5 Vagrant e finestra mobile 0.7) configurazione Dockerfile per sshd:

# sshd 
RUN echo 'root:secret' | chpasswd 
RUN yum install -y openssh-server 
RUN mkdir -p /var/run/sshd ; chmod -rx /var/run/sshd 
# http://stackoverflow.com/questions/2419412/ssh-connection-stop-at-debug1-ssh2-msg-kexinit-sent 
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 
# Bad security, add a user and sudo instead! 
RUN sed -ri 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config 
# http://stackoverflow.com/questions/18173889/cannot-access-centos-sshd-on-docker 
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 

#################### 
ADD supervisord.conf /etc/supervisord.conf 
EXPOSE 10389 22 
CMD ["/usr/bin/supervisord"] 

mio supervisord. conf:

[supervisord] 
nodaemon=true 

[program:sshd] 
command=/usr/sbin/sshd -D 
stdout_logfile=/var/log/supervisor/%(program_name)s.log 
stderr_logfile=/var/log/supervisor/%(program_name)s.log 
autorestart=true 
+0

Qual è la password di root per l'accesso? – uvgroovy

+0

Scusate, ho lasciato fuori il passo chpasswd per impostare la password dell'utente root. – jamshid

4

ho sshd lavorare con l'immagine "CentOS" da Docker repo:

  • ho fatto non necessità di modificare sshd_config cioè il default UsePAM yes impostata
  • avevo bisogno per eseguire /etc/init.d/sshd start nel mio Dockerfile in quanto genera chiavi alla prima esecuzione.
  • avevo bisogno di risolvere le autorizzazioni per .ssh

mio Dockerfile è:

FROM centos:latest 

RUN yum update -y 
RUN yum install -y openssh-server sudo 

RUN /etc/init.d/sshd start 

RUN useradd admin -G wheel 
RUN echo 'admin:secret' | chpasswd 
RUN echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers 

RUN mkdir -p /home/admin/.ssh 
ADD authorized_keys /home/admin/.ssh/ 
RUN chown -R admin:admin /home/admin/.ssh; chmod 700 /home/admin/.ssh 

EXPOSE 22 
CMD ["/usr/sbin/sshd", "-D"] 
+1

Che cos'è authorized_keys? – jophde

2

Dal sito Docker, l'esempio Dockerizing an SSH Daemon Service mostra un Dockerfile che risolve questo problema. La linea importante è il comando sed dopo il commento SSH login fix:

# sshd 
# 
# VERSION    0.0.2 

FROM ubuntu:14.04 
MAINTAINER Sven Dowideit <[email protected]> 

RUN apt-get update && apt-get install -y openssh-server 
RUN mkdir /var/run/sshd 
RUN echo 'root:screencast' | chpasswd 
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config 

# SSH login fix. Otherwise user is kicked off after login 
RUN sed '[email protected]\s*required\s*[email protected] optional [email protected]' -i /etc/pam.d/sshd 

ENV NOTVISIBLE "in users profile" 
RUN echo "export VISIBLE=now" >> /etc/profile 

EXPOSE 22 
CMD ["/usr/sbin/sshd", "-D"] 

Si basa su un'immagine di Ubuntu, ma funziona per CentOS 6 pure.

+1

Il tuo link è rotto. Il nuovo URL è https://docs.docker.com/engine/examples/running_ssh_service/ – Soli

Problemi correlati