Eu estou trabalhando com dois servidores, ambos rodando FreeBSD 8.4-RELEASE-p1 e OpenSSH_6.1p1. Os arquivos ssh_config
dos dois servidores, localizados em /etc/ssh
, são idênticos. Ambos os servidores são configurados para permitir que os usuários façam remotas em um ambiente preso usando SSH.
Como teste, entrei na cadeia de um usuário de teste usando as chaves SSH nos dois servidores, usando o seguinte comando:
ssh -i ~/.ssh/private_key [email protected] hello
E o arquivo authorized_keys
em ambos os casos especifica o seguinte comando a ser executado após a autenticação, anexado à chave pública (as permissões são as mesmas nos dois servidores):
command="~/test.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
Em que test.sh
simplesmente executa a seguinte operação:
#!/bin/sh
echo SSH_ORIGINAL_COMMAND = $SSH_ORIGINAL_COMMAND
Em um servidor, a saída do script sh
acima mostra o seguinte:
SSH_ORIGINAL_COMMAND = hello
Mas no outro servidor, o resultado parece não ser armazenado em SSH_ORIGINAL_COMMAND
SSH_ORIGINAL_COMMAND =
O comportamento é o mesmo para o respectivo servidor para cada cadeia de usuários. Minha pergunta é: que outra configuração eu precisaria para permitir que a variável SSH_ORIGINAL_COMMAND
fosse definida após a autenticação no caso do segundo servidor?