A segunda instância ssh não inicia após a atualização para o Xenial Xerus - Permissão negada

1

Configurei uma segunda instância do meu servidor ssh. "ssh" escutará a porta 22, mas permitirá somente login de chave privada / pública (via phabricator). "ssh2" irá escutar a porta 266 com as opções padrão do sshd_config.

Isso funcionou bem no Trusty Tahr, mas desde que fiz o upgrade para o Xenial, o "ssh2" não será iniciado. Diz

/etc/init.d/ssh2: 5: /etc/default/ssh2: /etc/ssh2/sshd_config: Permission denied

Porta de configuração 266:

/etc/ssh :

sudo cp -r /etc/ssh /etc/ssh2

Alterações em /etc/ssh2/sshd_config :

Port 266
HostKey /etc/ssh2/ssh_host_rsa_key
HostKey /etc/ssh2/ssh_host_dsa_key
HostKey /etc/ssh2/ssh_host_ecdsa_key
HostKey /etc/ssh2/ssh_host_ed25519_key
PidFile /var/run/sshd2.pid

/etc/default/ssh :

sudo cp /etc/default/ssh /etc/default/ssh2

e alterou seu conteúdo para:

SSHD_OPTS=-f /etc/ssh2/sshd_config

/etc/init/ssh.conf :

sudo cp /etc/init/ssh.conf /etc/init/ssh2.conf

Alterei todas as ocorrências de ssh / sshd para ssh2 / sshd2 e renomei env SSH_SIGSTOP=1 para env SSH2_SIGSTOP=1 .

Links simbólicos:

sudo ln -s /usr/sbin/sshd /usr/sbin/sshd2
sudo ln -s /etc/pam.d/sshd /etc/pam.d/sshd2
sudo ln -s /etc/init.d/ssh2 /etc/rc2.d/S03ssh2
sudo ln -s /etc/init.d/ssh2 /etc/rc3.d/S03ssh2
sudo ln -s /etc/init.d/ssh2 /etc/rc4.d/S03ssh2
sudo ln -s /etc/init.d/ssh2 /etc/rc5.d/S03ssh2

/etc/init.d/ssh :

sudo cp /etc/init.d/ssh /etc/init.d/ssh2

Alterei todas as ocorrências de " ssh " / " sshd " para " ssh2 " / " sshd2 ".

Finalmente eu atualizei o iptables:

sudo iptables -A INPUT -p tcp --dport 266 -j ACCEPT

Agora, se eu quiser iniciar o serviço ssh2 , recebo o seguinte erro:

  

Job para ssh2.service falhou porque o processo de controle foi encerrado com   Erro de código. Veja "systemctl status ssh2.service" e "journalctl -xe"   para detalhes.

status do systemctl ssh2.service:

  

● ssh2.service - LSB: servidor do SecureBSD Secure Shell carregado: carregado   (/etc/init.d/ssh2; bad; predefinido do fornecedor: ativado) Ativo: falhou   (Resultado: código de saída) desde Sáb 2016-11-19 15:53:46 CET; 44s ago        Docs: man: systemd-sysv-generator (8) Processo: 2046 ExecStart = / etc / init.d / ssh2 start (code = encerrado, status = 126)

     

Nov 19 15:53:46 cloud systemd [1]: Iniciando o LSB: OpenBSD Secure Shell   servidor ... Nov 19 15:53:46 nuvem ssh2 [2046]: /etc/init.d/ssh2: 5:   / etc / default / ssh2: /etc/ssh2/sshd_config: permissão negada no dia 19 de novembro   15:53:46 cloud systemd [1]: ssh2.service: processo de controle encerrado,   code = exited status = 126 Nov 19 15:53:46 cloud systemd [1]: Falha ao   start LSB: Servidor do OpenBSD Secure Shell. 19 de novembro, 15:53:46 nuvem   systemd [1]: ssh2.service: Unidade informada como falha. 19 de novembro, 15:53:46   cloud systemd [1]: ssh2.service: falha no resultado 'código de saída'.

journalctl -xe:

  

Iniciando o LSB: Servidor do SecureBSD Secure Shell ...   Assunto: A unidade ssh2.service iniciou o start-up   Definido por: systemd   Suporte: link   A unidade ssh2.service começou a ser iniciada. Nov 19 15:55:57 cloud ssh2 [2098]: /etc/init.d/ssh2: 5: / etc / default / ssh2:   / etc / ssh2 / sshd_config: Permissão negada 19 de nov de 15:55:57 nuvem   systemd [1]: ssh2.service: processo de controle encerrado, code = exited   status = 126 Nov 19 15:55:57 cloud systemd [1]: Falha ao iniciar o LSB:   Servidor do SecureBSD Secure Shell.   Assunto: A unidade ssh2.service falhou   Definido por: systemd   Suporte: link   A unidade ssh2.service falhou.   O resultado está com falha. Nov 19 15:55:57 cloud systemd [1]: ssh2.service: Unidade informada como falha. 19 de novembro 15:55:57 nuvem   systemd [1]: ssh2.service: falha no resultado 'código de saída'.

(eu removi os traços duplos de journalctl -xe ).

Permissões de arquivo:

/ etc / ssh2 /:

-rw-r--r--   1 root root 300261 Aug 11 18:24 moduli
-rw-r--r--   1 root root   1756 Aug 11 18:24 ssh_config
-rw-------   1 root root   2556 Nov 17 23:51 sshd_config
-rw-------   1 root root    668 Apr 18  2015 ssh_host_dsa_key
-rw-r--r--   1 root root    600 Apr 18  2015 ssh_host_dsa_key.pub
-rw-------   1 root root    227 Apr 18  2015 ssh_host_ecdsa_key
-rw-r--r--   1 root root    172 Apr 18  2015 ssh_host_ecdsa_key.pub
-rw-------   1 root root    399 Aug 19  2015 ssh_host_ed25519_key
-rw-r--r--   1 root root     92 Aug 19  2015 ssh_host_ed25519_key.pub
-rw-------   1 root root   1675 Apr 18  2015 ssh_host_rsa_key
-rw-r--r--   1 root root    392 Apr 18  2015 ssh_host_rsa_key.pub
-rw-r--r--   1 root root    338 Nov 17 19:02 ssh_import_id

/ etc / ssh2 /:

-rw-r--r--   1 root root 300261 Nov 17 19:32 moduli
-rw-r--r--   1 root root   1756 Nov 17 19:35 ssh_config
-rw-r--r--   1 root root   2562 Nov 19 14:07 sshd_config
-rw-------   1 root root    668 Mar  1  2016 ssh_host_dsa_key
-rw-r--r--   1 root root    600 Mar  1  2016 ssh_host_dsa_key.pub
-rw-------   1 root root    227 Mar  1  2016 ssh_host_ecdsa_key
-rw-r--r--   1 root root    172 Mar  1  2016 ssh_host_ecdsa_key.pub
-rw-------   1 root root    399 Mar  1  2016 ssh_host_ed25519_key
-rw-r--r--   1 root root     92 Mar  1  2016 ssh_host_ed25519_key.pub
-rw-------   1 root root   1675 Mar  1  2016 ssh_host_rsa_key
-rw-r--r--   1 root root    392 Mar  1  2016 ssh_host_rsa_key.pub
-rw-r--r--   1 root root    338 Feb 28  2016 ssh_import_id

/ etc / default / (aparado):

-rw-r--r--   1 root root   156 Nov 19 15:18 ssh
-rw-r--r--   1 root root   157 Feb 29  2016 ssh2

/etc/init.d/ (aparado):

-rwxr-xr-x   1 root root  4077 Nov 18 00:38 ssh
-rwxr-xr-x   1 root root  4121 Nov 18 01:27 ssh2

Status do serviço: SSH:

ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2016-11-19 15:18:47 CET; 46min ago
 Main PID: 846 (sshd)
   CGroup: /system.slice/ssh.service
           └─846 /usr/sbin/sshd -D -f /etc/ssh/sshd_config

SSH2:

ssh2.service - LSB: OpenBSD Secure Shell server
   Loaded: loaded (/etc/init.d/ssh2; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2016-11-19 15:18:44 CET; 47min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 375 ExecStart=/etc/init.d/ssh2 start (code=exited, status=126)

Nov 19 15:18:44 cloud systemd[1]: Starting LSB: OpenBSD Secure Shell server...
Nov 19 15:18:44 cloud ssh2[375]: /etc/init.d/ssh2: 5: /etc/default/ssh2: /etc/ssh2/sshd_config: Permission denied
Nov 19 15:18:44 cloud systemd[1]: ssh2.service: Control process exited, code=exited status=126
Nov 19 15:18:44 cloud systemd[1]: Failed to start LSB: OpenBSD Secure Shell server2.
Nov 19 15:18:44 cloud systemd[1]: ssh2.service: Unit entered failed state.
Nov 19 15:18:44 cloud systemd[1]: ssh2.service: Failed with result 'exit-code'.

A execução do seguinte comando (de /etc/initi.d/ssh2) iniciará o servidor ssh sem erros. Iniciar o serviço através do "serviço ssh2 start" irá resultar em erros!

start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd2.pid --exec /usr/sbin/sshd2 -- -f /etc/ssh2/sshd_config

Resumido:

  • o serviço ssh está ativo (porta 22, atualmente com configurações padrão)
  • o serviço ssh2 não será iniciado
  • os dois serviços costumavam funcionar como deveriam antes de atualizar para o Xenial

Espero que alguém saiba o que fazer. Obrigado antecipadamente!

Atualização: adicionada a linha start-stop-daemon .

    
por schranktuer 19.11.2016 / 16:11

2 respostas

1

Agora, ambas as instâncias ssh estão em execução! Qual foi o truque?

Eu fiz os seguintes passos:

  • Defina SSHD_OPTS=-f /etc/ssh2/sshd_config para SSHD_OPTS= em /etc/default/ssh2
  • Defina exec /usr/sbin/sshd2 -D para exec /usr/sbin/sshd2 -D -f /etc/ssh2/sshd_config em /etc/init/ssh2.conf
  • Descomente SSHD_OPTS em /etc/init.d/ssh2
  • Defina /usr/sbin/sshd2 $SSHD_OPTS -t || exit 1 para /usr/sbin/sshd2 -f /etc/ssh2/sshd_config -t || exit 1 em /etc/init.d/ssh2
  • Defina if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd2.pid --exec /usr/sbin/sshd2 -- $SSHD_OPTS; then para if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd2.pid --exec /usr/sbin/sshd2 -- -f /etc/ssh2/sshd_config; then em /etc/init.d/ssh2 ( 3 ocorrências! )
  • reinicializar

Após a reinicialização, ambos os serviços estavam em execução.

    
por schranktuer 19.11.2016 / 19:23
0

Seu sistema está usando o systemd, então você provavelmente deveria usar isso.

Copie o arquivo de serviço ssh atual de /lib/systemd/system/ssh.service para /etc/systemd/system/ssh2.service , edite o novo arquivo ao seu gosto e, em seguida, comande: sudo systemctl enable ssh2 && sudo systemctl start ssh2

    
por Olli K 08.04.2017 / 10:11