Como executo um alias remoto em um SSH?

2

Como faço para executar um alias remoto em um SSH?

Por exemplo, há um apelido bastante complexo para rkhunter , e eu gostaria de executá-lo em um comando sobre ssh assim:

ssh user@server_ip -p port_number -t alias_name_defined_on_server

Para ser exato, o alias é definido em .bash_aliases , que é originado por .bashrc desse user específico.

    
por Vlastimil 20.02.2018 / 07:57

1 resposta

3

Uma resposta de trabalho foi publicada na SO, citada abaixo:

Quoted from the man page of bash: Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt ...

So the simplest way IMO is to put the following lines at the top of your /home/<user>/.bashrc file:

# comment out the original line
# [ -z "$PS1" ] && return

if [ -z "$PS1" ]; then
  shopt -s expand_aliases
  # alias ls='ls --color=always'
  # return
fi

Save and exit. Now you can run ssh user@host "your_alias" successfully.

Observação: se o seu ~/.bashrc tiver algo parecido com o abaixo, comente a linha que return quando o shell não for interativo:

# If not running interactively, don't do anything
 case $- in
     *i*) ;;
       *) return;;
 esac
    
por 20.02.2018 / 08:36