Исправление для этого (, найденное путем догадок ), заключалось в выполнении следующих команд в chroot.
rm /dev/ptmx
ln -s /dev/pts/ptmx /dev/ptmx
Я не уверен на 100%, но я считаю, что причина, по которой это необходимо, заключается в том, что lxc использует «режим нескольких экземпляров» для /dev/pts. Согласно документации наhttps://github.com/torvalds/linux/blob/v4.4/Documentation/filesystems/devpts.txt
If CONFIG_DEVPTS_MULTIPLE_INSTANCES=y and 'newinstance' option is specified, the mount is considered to be in the multi-instance mode and a new instance of the devpts fs is created. Any ptys created in this instance are independent of ptys in other instances of devpts. Like in the single-instance mode, the /dev/pts/ptmx node is present. To effectively use the multi-instance mode, open of /dev/ptmx must be a redirected to '/dev/pts/ptmx' using a symlink or bind-mount.
Глядя на более поздние версии этого файла, кажется, что это может не понадобиться для более поздних ядер.
Вы можете передать команды sftp
без пакетного режима, используя перенаправление ввода:
sftp username@example.com < commands.txt
Таким образом, вы по-прежнему можете использовать интерактивную аутентификацию по паролю.
$ sftp username@example.com < commands.txt
username@example.com's password:
Connected to username@example.com.
sftp> get -p source_file dest
Fetching /path/source_file to dest
/path/source_file 100% 9474 975.4KB/s 00:00
sftp>