AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 726423
Accepted
j0h
j0h
Asked: 2022-11-27 22:03:32 +0800 CST2022-11-27 22:03:32 +0800 CST 2022-11-27 22:03:32 +0800 CST

SSH- "Não foi possível negociar... nenhum tipo de chave de host correspondente encontrado."

  • 772

Eu tenho um servidor shell em um sistema embarcado (é um sistema ARMel de 32 bits). Quando vou fazer o login, eu uso:

$ ssh root@ip 
Unable to negotiate with ip port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

Então pensei, ok, darei a ele um dos tipos de cifra esperados com a -copção:

$ ssh -c ssh-dss root@ip 
Unknown cipher type 'ssh-dss'

ou:

$ ssh -c ssh-rsa root@ip
Unknown cipher type 'ssh-rsa'

Portanto, não tenho certeza do que fazer a seguir. Eu tenho um console serial UART para o qual posso enviar comandos, mas prefiro estar no SSH. Eu sei que está executando o serviço, mas não sei como fazer login nele.

ssh
  • 4 4 respostas
  • 1447 Views

4 respostas

  • Voted
  1. Frobozz
    2022-11-28T10:17:29+08:002022-11-28T10:17:29+08:00

    Eu vejo muito isso com os sistemas integrados legados da Cisco cujo firmware não pode mais ser atualizado para os padrões ssh modernos.

    Além do algoritmo de chave do host, você pode precisar usar um algoritmo de troca de chave obsoleto e/ou especificação de cifra também.

    Exemplo de Bash:

    ssh -oKexAlgorithms=+diffie-hellman-group1-sha1\
     -oHostKeyAlgorithms=+ssh-rsa\
     -oCiphers=+aes256-cbc\
     <user>@asa5505
    

    A boa notícia é que o OpenSSH (o que eu uso) geralmente me diz quais algoritmos ou cifras estão sendo oferecidos - caso contrário, posso ter que fazer muitas tentativas e erros.

    Se eu fizer isso, os protocolos disponíveis podem ser listados no OpenSSH com:

    ssh -Q [ciphers|hostkeyalgorithms|kexalgorithms|...]
    

    Atualização: Como parece haver muito interesse em fazer isso usando ssh_config (obrigado, Bob,Z,et al), fornecerei um exemplo para esse método:

    ############################################
    # ~/.ssh/config
    Host 'asa5505*'
            KexAlgorithms +diffie-hellman-group1-sha1
            HostKeyAlgorithms +ssh-rsa
            Ciphers +aes128-cbc
    
    

    Como esses protocolos foram obsoletos por motivos de segurança, você deve restringir o uso padrão com uma qualificação "Host" ou "Match" para que sejam usados ​​apenas nos destinos herdados que os exigem.

    Da mesma forma, você deve evitar colocar essas exceções em /etc/ssh/ssh_config ou em /etc/ssh/ssh_config.d/ , a menos que sua intenção seja fazer com que todos os usuários atuais e futuros as utilizem por padrão.

    Para todos os detalhes corajosos, consulte:

    man ssh_config
    
    • 18
  2. Best Answer
    csx4
    2022-11-27T23:17:42+08:002022-11-27T23:17:42+08:00

    Tente usar isso:

    ssh -oHostKeyAlgorithms=+ssh-rsa root@ip
    

    Notas:

    • Página de manual do OpenSSH
    • 13
  3. Z McCrocklin
    2022-11-29T07:03:51+08:002022-11-29T07:03:51+08:00

    Também depende do que você está executando em sua própria máquina. Se você estiver executando algo como Arch ou Fedora36+, que está no OpenSSL3.0, os algoritmos mais antigos foram obsoletos ou desativados. Eu tive que incluir esta configuração dentro da minha configuração ssh estando no 3.0 conectando-se a servidores mais antigos:

    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa
    
    • 2
  4. rems4e
    2022-11-29T01:23:10+08:002022-11-29T01:23:10+08:00

    Um truque legal, que funciona a partir de agora e pode ajudar na compatibilidade com versões anteriores se os algoritmos forem removidos do OpenSSH, é usar um contêiner de uma imagem de distribuição Linux mais antiga.

    Há mais sobrecarga (embora o contêiner possa ser mantido ao custo de algumas dezenas de MB) e com possíveis riscos de segurança (possivelmente versões OpenSSH não mantidas) que podem ou não ser aceitáveis.

    Aqui está um one-liner, com suas próprias limitações:

    docker run --rm -it debian:jessie sh -c 'apt-get update && apt install -y --force-yes openssh-client && ssh the_host

    • 0

relate perguntas

  • Por que o utilitário ssh é considerado um pty?

  • Auto-SSH funciona manualmente, mas não em segundo plano

  • Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]

  • rsync porta 22 e 873 uso

  • Aborto repentino do SCP: tubo quebrado, código de autenticação de mensagem incorreto

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve