Como configurar o SSH com um RemoteCommand apenas para sessões interativas (ou seja, sem comando ou não sftp)

1

Atualmente, uso o Fish como meu shell principal em hosts locais e remotos.

Eu conecto a hosts remotos via ssh e sftp. Eu queria abrir ou reutilizar um tmux remoto sempre que me conecto, automaticamente, por padrão; então adicionei isso ao meu ~/.ssh/config :

Host example.com
RemoteCommand tmux a; or tmux
RequestTTY yes

O problema é que agora não consigo me conectar através de sftp , nem posso executar um comando direto da minha CLI local:

➤ ssh example.com ping localhost
Cannot execute command-line and remote command.

➤ sftp example.com
Cannot execute command-line and remote command.
Connection closed

Então, minha pergunta é: Como posso definir um comando padrão a ser executado ao abrir uma nova sessão SSH interativa, mas torná-la substituível?

    
por Yajo 22.06.2018 / 10:39

1 resposta

3

Opção 1)

Você pode combinar a opção (veja man ssh_config)

Match Host example.com exec "test $_ = /usr/bin/ssh"
     RemoteCommand tmux a; or tmux
     RequestTTY yes

Isso só diferenciará a diferença entre ssh & sftp

Opção 2

Você cria algumas configurações de espaço reservado para seu comando diferente, por exemplo:

Host tmux.example.com
  HostName example.com
  HostKeyAlias example.com
  RemoteCommand tmux a; or tmux
  RequestTTY yes

E depois você ainda pode usar example.com para usar o sftp / ping.

    
por 24.06.2018 / 06:14