ssh para o servidor aninhado e coletar algumas informações

0

Recentemente encontrei algumas dificuldades, que desejo escrever um script para fazer login automaticamente em servidores aninhados para coletar algumas informações sobre cada um deles: (especificamente, use nvidia-smi para coletar o GPU usage info em cada máquina)

a estrutura do servidor aninhado é como: user@boss ( user@machine1, user@machine2, user@machine3, ... ) normalmente nós temos que usar ssh para logar em user@boss , então ssh para uma máquina específica para fazer nosso trabalho, mas não é conveniente monitorar o uso de todas as máquinas GPU, eu tentei escrever um script como:

sshpass -p "xxxx" ssh -o StrictHostKeyChecking=no [email protected]
for v in machine1 machine2
do
        sshpass -p "xxxx" ssh -o StrictHostKeyChecking=no v
        echo $v
        nvidia-smi
done

mas só loga no user @ boss, não estou familiarizado com coisas de servidor, é user @ boss o nó raiz, então machine1, machine2, ... são nó filho? alguém pode ajudar? (note que eu não tenho privilégio de root)

ADD os servidores, incluindo user @ boss e user @ machine1, user @ machine2, ... todos não têm sshpass instalado, apenas ssh surported

    
por K.Wanter 01.01.2018 / 15:09

1 resposta

1
  1. Não use autenticação por senha. Use somente autenticação por chave pública e tenha senhas boas e strongs para suas chaves ssh.

    Veja Por que usar um Chave SSH mais segura do que usando senhas? e as publicações Linked e Related para discussões interessantes sobre chaves vs senhas.

  2. Você pode configurar o ssh para sempre se conectar a um host remoto usando um host proxy.

por exemplo. no seu ~/.ssh/config :

Host machine1 machine2 machine3
    ProxyJump user@boss

então ssh machine1 irá sempre se conectar via boss .

De man ssh_config :

ProxyJump

Specifies one or more jump proxies as [user@]host[:port].

Multiple proxies may be separated by comma characters and will be visited sequentially.

Setting this option will cause ssh(1) to connect to the target host by first making a ssh(1) connection to the specified ProxyJump host and then establishing a TCP forwarding to the ultimate target from there.

    
por 01.01.2018 / 15:35

Tags