Ignora o arquivo .ssh / rc?

2

Eu tenho um servidor remoto que possui um arquivo ~ / .ssh / rc. Toda vez que eu ssh em que o servidor, ele executa esse arquivo antes que ele me cai em um shell remoto. Normalmente isso é o que eu quero. Ocasionalmente eu não quero isso.

Existe uma opção que eu posso dar quando eu ssh para que ela não execute ~ / .ssh / rc?

    
por user1080952 25.07.2018 / 22:00

2 respostas

1

Não há como fazer isso no cliente. É um recurso de segurança: o arquivo ~/.ssh/rc pode fazer coisas que o cliente não deve ser capaz de contornar (embora isso não seja um uso comum).

A maneira mais óbvia de ignorar o que o ~/.ssh/rc faz é envolvê-lo em código que depende de uma variável de ambiente e permitir que o cliente transmita essa variável de ambiente para o servidor ( AcceptEnv diretiva em /etc/sshd_config ) .

Outra maneira de fazer isso do lado do servidor é usar uma chave com o parâmetro no-user-rc .

    
por 25.07.2018 / 22:29
1

A única maneira que posso ver, após uma breve verificação dos manuais ssh e sshd , para este arquivo não ser executado por meio de uma alteração no cliente SSH é usando uma chave separada para autenticar com o host.

A execução de ~/.ssh/rc pode ser desativada configurando a opção no-user-rc no arquivo ~/.ssh/authorized_keys para as chaves específicas que um usuário pode usar.

O arquivo pode normalmente se parecer com isto:

ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost

Isso pode ser complementado com as opções descritas no manual sshd :

no-user-rc ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost

E outra chave diferente pode ser adicionada quando o arquivo rc for executado:

no-user-rc ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost
ssh-ed25519 AAAASOMEDIFFERENTKEYSIGNATUREHERE myself@somehost

Localmente, você se conectaria com chaves separadas dependendo se você queria executar o arquivo rc ou não, possivelmente usando a seguinte configuração em ~/.ssh/config :

Host myhost
    Hostname theremote.host
    User myself
    IdentityFile %d/.ssh/id_ed25519

Host myhost-norc
    Hostname theremote.host
    User myself
    IdentityFile %d/.ssh/id_ed25519-norc

Onde a assinatura da chave em ~/.ssh/id_ed25519-norc corresponderia à assinatura de chave no-user-rc .

Isso parece bastante complicado, mas eu honestamente não consegui encontrar outra maneira de evitar a execução do arquivo rc . Outra opção seria, como Gilles sugere , deixar o arquivo rc ignorar o que está fazendo com base em alguns variável de ambiente, e em vez disso, chame /etc/ssh/sshrc como normalmente seria feito se o arquivo rc não existisse (o sshd manual diz que se /etc/ssh/sshrc também não existir, então xauth é usado, veja a sshd manual para mais informações).

    
por 25.07.2018 / 22:18

Tags