modifica os endereços IP ssh_config com base no ip atual

0

Gostaria de modificar os aliases ssh_config com base no meu endereço IP atual.

Eu tenho um laptop que carrego de rede em rede e uma câmera com a qual faço o mesmo. Eu configurei o dhcp nessas redes para sempre dar à câmera o mesmo endereço IP, e eu calculo o que deveria ser no meu bashrc e coloco o IP da câmera em uma variável de ambiente.

Existe alguma maneira de fazer algo como o seguinte dentro de ~ / .ssh / config:

Host camera
    HostName $CAMERA_IP
    User camuser

O acima não funciona como o ssh reclama:

ssh: Could not resolve hostname $CAMERA_IP: Name or service not known
    
por Sandy Patterson 31.01.2014 / 14:14

2 respostas

2

Como você está fazendo cálculos no bashrc, você também pode gerar o ssh_config de um modelo usando sed.

O modelo (.ssh / ssh_config_t):

Host camera
    Hostname IP_PH
    user camuser

O script em bashrc

sed -e "s/IP_PH/$CAMERA_IP/" ~/.ssh/ssh_config_t > ~/.ssh/ssh_config
    
por 31.01.2014 / 15:55
0

Acho que resolver isso seria usar um arquivo de configuração de modelo da seguinte forma.

~ / .ssh / config_template :

Host camera
    HostName $CAMERA_IP
    User camuser

E, em seguida, um simples script de atualização.

~ / .ssh / update_config.sh :

#!/bin/bash

# Do whatever to set $CAMERA_IP
CAMERA_IP=192.168.1.1

# Update config file
sed "s/\$CAMERA_IP/$CAMERA_IP/" ~/.ssh/config_template > ~/.ssh/config

Depois, chame ~/.ssh/update_config.sh do seu arquivo bashrc . Lembre-se de não fazer nenhuma alteração manual em ssh_config .

    
por 31.01.2014 / 15:56

Tags