Execute o comando no login remoto para qualquer shell

1

Suponha que:

  • Você tem ssh de acesso a um servidor
  • Você não sabe qual shell você tem (e que o diabo muda na próxima vez que você fizer login)
  • Você deseja que o comando foo seja executado toda vez que fizer login (mesmo que não interativamente)
  • Você deseja que a variável de ambiente bar seja definida como quux sempre que fizer login (mesmo que não interativamente)

Em particular, você pode não assumir:

  • O sistema operacional
  • Que outros shells que não sejam /bin/sh estão disponíveis

link (Conectores não interativos e não interativos remotos) e Can 'ssh < host > < comando > ' ser configurado para sempre carregar arquivos de inicialização do lado do servidor? cobrir isso muito bem para o Bash, mas parece ignorar que o diabo pode mudar seu shell de login para algo diferente do Bash.

Quais são as técnicas similares para ksh, bash, ash, traço, csh, tcsh, zsh? (Desovar /bin/sh do shell de login é considerado trapaça do diabo e, portanto, não é uma resposta aceitável).

    
por Ole Tange 03.12.2017 / 18:25

1 resposta

2

Você pode tentar algo assim:

sshd_config:

Match User ed
    ForceCommand "bash -c ";export THING=a;/bin/bash -i""

Isso é sub-ótimo, e tenho certeza que pode ser jogado, mas vou deixar isso como um exercício para o leitor.

    
por 03.12.2017 / 18:35

Tags