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 / computer / Perguntas / 1714028
Accepted
Celeste aka. 73chn0
Celeste aka. 73chn0
Asked: 2022-04-02 02:46:25 +0800 CST2022-04-02 02:46:25 +0800 CST 2022-04-02 02:46:25 +0800 CST

Fazendo um script bash executar ssh

  • 772

Eu quero que um script bash inicie várias conexões SSH para vários servidores linux em várias novas janelas bash, não para processamento adicional, apenas para se conectar com um comando simples em vez de ter que digitar as linhas ssh completas toda vez que reinicio o bash (usando WSL2/WSLg).

Abrir novos terminais e executar comandos neles não é problema. Apenas executar o ssh (openSSH) é um problema nos três casos, pois todos lançam o mesmo erro:'ad port ' 12345

Executando-o manualmente no bash, invoco o ssh assim: ssh [email protected] -p 12345

Então, suponho que, como em todos os comandos, posso apenas fazer o script da seguinte maneira:

#!/bin/bash
ssh [email protected] -p 12345
ssh [email protected] -p 67890
ssh [email protected] -p 54321

Este é um problema relacionado ao script ou pode ser um problema do WSL?

EDIT: Quero salientar que meu foco agora está principalmente no erro 'porta de anúncio' que recebo. Eu não tenho idéia do que é isso e não consigo encontrar nada útil sobre isso na Inet.

EDIT2: Esta é apenas uma simplificação excessiva do código, pois não tenho permissão para compartilhar nenhum detalhe de todo o script. Eu sei que este código apenas executará sequencialmente o ssh, mas isso é apenas para teste de qualquer maneira. Eu só quero ver as três conexões sendo estabelecidas em ordem (os logins são tratados por pares de chaves RSA).

Todo o script foi escrito usando NANO ou VIM em um servidor Proxmox->Debian (Debian virtual rodando em Proxmox). Portanto, os finais de linha CRLF infelizmente não são o problema. Obrigado por apontar isso embora!

O problema não foi resolvido diretamente, mas pode ser resolvido com outra abordagem - usando tmux - conforme sugerido por @NotTheDr01ds !

ssh bash
  • 1 1 respostas
  • 1596 Views

1 respostas

  • Voted
  1. Best Answer
    NotTheDr01ds
    2022-04-02T06:38:57+08:002022-04-02T06:38:57+08:00

    Isso provavelmente é causado pela criação ou edição do arquivo em um editor do Windows que o salvou com terminações de linha DOS/Windows CRLF. Eu recebo o mesmo erro se eu criar seu script usando notepad.exe. O bloco de notas agora pode salvar no formato Unix/Linux, mas não salva por padrão para novos arquivos, a menos que você altere essa opção manualmente.

    Em geral, sempre edite arquivos dentro do WSL usando ferramentas do Linux.

    em várias novas janelas bash

    Seu script ainda não tenta resolver isso. O script atual, conforme mencionado nos comentários, irá executá-los sequencialmente em uma única bashinstância (o subshell da própria linha shebang do script).

    Se você quiser iniciar cada um em uma "janela" separada, precisará de alguma ferramenta que forneça essa funcionalidade. O wsl.execomando em si não é um bom candidato para isso, pois por padrão, ele irá executar uma nova instância dentro do terminal atual. É possível usar o PowerShell (mesmo de dentro do WSL) com o Start-Processcmdlet para iniciar uma nova janela/terminal do WSL:

    Da WSL:

    powershell.exe -c Start-Process wsl.exe
    

    Isso pode ser combinado com o argumento de wsl.exe's -e/--executepara iniciar os sshcomandos:

    #!/bin/bash
    powershell.exe -c 'Start-Process "wsl.exe" -ArgumentList "ssh [email protected] -p 12345"'
    powershell.exe -c 'Start-Process "wsl.exe" -ArgumentList "ssh [email protected] -p 67890"'
    powershell.exe -c 'Start-Process "wsl.exe" -ArgumentList "ssh [email protected] -p 54321"'
    

    Mas eu recomendo usar o Tmux para isso. Ele é instalado por padrão na distribuição WSL Ubuntu:

    #!/bin/bash
    tmux new-session sh -c "ssh [email protected] -p 12345; exec bash" \; new-window sh -c "ssh [email protected] -p 67890; exec bash" \; new-window sh -c "ssh [email protected] -p 54321; exec bash"
    

    Isso executará seus sshcomandos em 3 janelas Tmux diferentes e, em seguida, iniciará um shell bash em cada uma para que você possa visualizar os resultados. Se você ainda não conhece o Tmux, precisará aprender algumas teclas de atalho para poder alternar entre janelas, etc.

    É claro que existem outras maneiras de fazer isso também.

    • 2

relate perguntas

  • Notificar-enviar notificações aparecendo na janela

  • Exigir autenticação LDAP *e* autenticação ssh

  • Carregar chave “ec256.pem”: formato inválido é lançado ao tentar gerar chave pública a partir de chave privada

  • como abrir um arquivo de escritório do WSL

  • Por que chown 600 id_rsa corrige problemas de permissões?

Sidebar

Stats

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

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

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