Executar um comando remoto usando o arquivo de configuração ssh

31

Eu gostaria de poder configurar um comando para rodar em ssh login em um servidor, sem precisar digitá-lo. Basicamente eu estou procurando o arquivo de configuração ssh equivalente a:

ssh host command

para que tudo que eu precise digitar seja:

ssh host

e o comando é executado.

    
por PeterJCLaw 25.03.2010 / 19:11

3 respostas

16

Também é possível inserir um comando em seu arquivo de chaves autorizado. (%código%). Isso permite que você execute um comando personalizado para cada chave no arquivo. Eu uso isso para encaminhar conexões shell através do meu firewall. O resultado é que posso ssh para um host e ele conecta automaticamente a sessão a um host dentro da rede. A entrada ~/.ssh/authorized_keys tem esta aparência:

command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...

Mais especificamente, o redirecionamento é para minha instância de gitolite. Isso permite acesso externo simples sem expor diretamente o host gitolite a qualquer acesso externo. Verifique a página do manual para mais informações. ( link )

    
por 22.08.2012 / 20:10
10

Se você estiver executando o OpenSSH, parece que ~/.ssh/rc é executado após faça o login .

    
por 25.03.2010 / 19:26
9

Você pode configurar um alias bash.

No seu arquivo .bashrc, coloque:

alias ssl='ssh some_host run_command'

Então você nem precisaria digitar o nome do host.

Ou, se você quisesse fazer isso com vários hosts (e vários aliases não funcionariam), use um script pequeno:

kevin@box:~$ cat ssl.sh
#!/bin/sh
ssh $1 some_command
kevin@box:~$
    
por 25.03.2010 / 19:43