Na página de manual do bipe na minha máquina Ubuntu:
IOCTL WACKINESS
Alguns usuários encontrarão uma situação em que o bipe morre com uma reclamação de ioctl (). A razão para isso, como Peter Tirsek foi bom o suficiente para apontar para mim, decorre de como o kernel lida com a tentativa do bipe de cutucar (para não programadores: ioctl é um tipo de função abrangente que permite cutucar coisas que não tem outro mecanismo predefinido de cutucar) o tty, que é como ele emite um sinal sonoro. A história resumida é que o kernel verifica se:
você é o superusuário
você possui o tty atual
O que isso significa é que o root sempre pode fazer o bipe funcionar (de acordo com o meu conhecimento!) E que qualquer usuário local pode fazer o bipe funcionar, MAS um usuário remoto não raiz não pode usá-lo em seu estado natural.
Essa pode ser a razão pela qual o sinal sonoro se recusa a trabalhar remotamente. Você pode verificar se essa é a causa raiz chamando ssh com a opção -t , que força a alocação de pseudo-tty.
Uma solução menos desejável seria criar um script de wrapper que execute o bipe e conceder permissões de raiz a esse script . Se a execução desse script pelo ssh produzir um sinal sonoro, você saberá que o problema é a falta de um terminal de controle.