.ssh / config maneira de especificar alocação pseudo-tty e execução de comandos

8

Existe alguma maneira de especificar, em .ssh/config , um comando como:

ssh -t remote-host "screen -dR screen_name"

para que eu possa acessar facilmente a sessão screen remota com ssh remote-host ?

No momento, resolvi esse problema usando um script personalizado:

$ cat ~/bin/sssh 
#!/bin/sh

/usr/bin/ssh -t $1 "screen -dR ab"

~/bin fica em primeiro lugar em $PATH , mas é pouco flexível e feio.

Além disso, gostaria de encontrar uma maneira de implementar o preenchimento automático do host para meu script personalizado.

    
por A B 26.12.2011 / 23:19

3 respostas

7

Use a força, Luke!

RequestTTY force no seu ~/.ssh/config para o host desejado.

    
por 07.07.2016 / 18:00
6

Para alocar o tty como você faria com a opção -t , coloque RequestTTY force como uma entrada no arquivo de configuração ssh (geralmente em ~/.ssh/config ). Para sempre executar um comando no servidor depois de conectado, coloque RemoteCommand COMMAND na entrada, em que COMMAND é o comando que você deseja executar na conexão. Para outras opções, verifique man ssh_config .

Host remote-host
    Hostname my.server.com
    User imauser
    IdentityFile /path/to/identity_file
    RequestTTY force
    RemoteCommand screen -dR screen_name
    
por 21.05.2018 / 07:56
1

Eu diria que esta é a maneira mais flexível. Um script permite configurar parâmetros, adicionar condicionais, alterar o comando conforme necessário, tudo com base nas entradas.

Existem maneiras de "forçar" o comando em authorized_keys . Mas eu não sei de uma maneira de forçar a alocação de tty exceto da linha de comando ou forçar um comando no servidor remoto a partir dos arquivos de configuração do lado local.

Eu tenho um script que verifica o arquivo de configuração, verifica o DNS com vários domínios e define a cadeia de título do emulador de terminal. Eu chamo de tela no meu sistema local ( Ctrl-a g ).

    
por 27.12.2011 / 02:31