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).