Sudo: no tty present and no askpass program specified

Простой способ - указать -t:

ssh -t remotehost "sudo ./binary"

Со справочной страницы:

Принудительное выделение псевдо-tty. Это может быть использовано для выполнения произвольных экранных программ на удаленной машине, что может быть очень полезно, например, при реализации служб меню. Параметры Multiple -t принудительно выделяют tty, даже если ssh не имеет локального tty.

Я не могу точно объяснить, почему это работает, и, возможно, есть лучший способ. Я хотел бы услышать об этом, если это так :)

@psusi объясняет, почему это работает, в комментарии ниже.