CentOS 7 sshd parece não funcionar?

2

Eu iniciei sudo systemctl start sshd , mas não consigo me conectar de fora à máquina do CentOS 7. No entanto, na máquina do CentOS 7 eu posso acessar outros servidores via ssh .

O que eu senti falta?

UDATE # 1

Confirmei o seguinte com base na resposta do slm:

  • O serviço sshd está ativo e vinculado à porta 22 no IP 131.181.10.150
  • Eu posso executar um curl -v telenet://131.181.10.150:22 e ver uma mensagem "Conectado".

Meu problema é quando tento ssh no servidor:

$ ssh [email protected]
ssh: connect to host 131.181.10.150 port 22: Operation timed out

UDATE # 2

Lembrei-me de quando usei docker-compose que começou a baixar os contêineres de repente perdi a capacidade de iniciar ssh connection.

Observar o número de interfaces que usam ip link show aumentou docker0 NIC + muitas outras.

Eu então tentei desativar o serviço & firewalld e ainda não consigo me conectar.

$ sudo systemctl stop docker
$ sudo systemctl stop firewalld

Ainda sem sorte.

    
por user3523406 25.07.2018 / 01:53

1 resposta

4

Com o serviço sshd é bastante simples de configurar e seguir em frente.

1. Iniciar serviço

Certifique-se de que o serviço esteja ativo e em execução / escutando na porta 22.

iniciar serviço
$ sudo systemctl start sshd
verificar status
$ sudo systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-07-24 22:24:00 EDT; 1h 40min left
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1270 (sshd)
    Tasks: 1
   CGroup: /system.slice/sshd.service
           └─1270 /usr/sbin/sshd -D

Jul 24 22:24:00 centos7 systemd[1]: Starting OpenSSH server daemon...
Jul 24 22:24:00 centos7 systemd[1270]: Executing: /usr/sbin/sshd -D
Jul 24 22:24:00 centos7 sshd[1270]: Server listening on 0.0.0.0 port 22.
Jul 24 22:24:00 centos7 sshd[1270]: Server listening on :: port 22.
Jul 24 22:24:00 centos7 systemd[1]: Started OpenSSH server daemon.
Jul 24 20:31:37 centos7 sshd[1582]: Accepted publickey for vagrant from 10.0.2.2 port 64437 ssh2: RSA SHA256:1vJymfZsu2KZ49lDftGMzz2VEb2Z2Y8PNi9cs55eHGE
Jul 24 20:43:29 centos7 systemd[1]: Trying to enqueue job sshd.service/start/replace
Jul 24 20:43:29 centos7 systemd[1]: Installed new job sshd.service/start as 560
Jul 24 20:43:29 centos7 systemd[1]: Enqueued job sshd.service/start as 560
Jul 24 20:43:29 centos7 systemd[1]: Job sshd.service/start finished, result=done

2. Verifique se o serviço está escutando

verifique se está ouvindo na porta 22
$ sudo netstat -tlpn | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1270/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1270/sshd

Você também desejará verificar se sshd está atendendo em todas as interfaces (0.0.0.0) ou pelo menos no endereço IP do seu sistema:

$ ip a l eth0 | awk '/inet / {print $2}'
192.168.56.101/24

Então você veria no netstat output, 192.168.56.101:22, por exemplo.

3. Firewall

Em seguida, verifique se o firewall está permitindo que o tráfego de rede alcance a porta 22.

$ sudo firewall-cmd  --list-all
FirewallD is not running

Se é assim, o tráfego pode alcançar a porta 22. Se for assim:

$ firewall-cmd  --list-all
public (active)
  target: DROP
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Está a permitir tráfego para ssh & dhcpv6-client services e caindo para todo o resto. Novamente, tudo bem e deve permitir o tráfego SSH.

4. Verifique /etc/ssh/sshd_config

Verifique se o /etc/ssh/sshd_config não está bloqueando as conexões externas. As opções a seguir devem ser definidas de forma semelhante ao que estou mostrando abaixo.

$ grep -vE '^#|^$|AcceptEnv|HostKey|Syslog|MAC|Banner|LogLevel|Authorized' /etc/ssh/sshd_config
PermitRootLogin yes
MaxAuthTries 4
HostbasedAuthentication no
IgnoreRhosts yes
PermitEmptyPasswords no
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding no
Subsystem   sftp    /usr/libexec/openssh/sftp-server
Protocol 2

5. Verificar

Você pode confirmar usando um comando como este em um de seus clientes externos:

$ timeout 2 curl -v telnet://192.168.56.101:22
* Rebuilt URL to: telnet://192.168.56.101:22/
*   Trying 192.168.56.101...
* Connected to 192.168.56.101 (192.168.56.101) port 22 (#0)
SSH-2.0-OpenSSH_7.4 
$

OBSERVAÇÃO: Se você vir uma mensagem de endereço IP 'Conectado a XXXX' aqui, não há nada que esteja inibindo o tráfego da rede da máquina cliente em que você está executando curl para o sshd servidor.

6. Docker

Em algumas situações, como onde o Docker foi instalado, você encontrará um cenário no qual a docker0 bridge adicionou várias redes virtuais na ponte docker0 . Você pode vê-los assim:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
bd7594c1dce3        bridge              bridge              local
db24b1e2be58        host                host                local
edf606d533a5        none                null                local

Nessas situações, você precisará remover todas as redes extras para restaurar sua rede física, para poder rotear os pacotes SSH corretamente. Basta usar o comando docker network rm <net id> para remover qualquer coisa além do padrão bridge , host e none .

Referências

por 25.07.2018 / 03:10