канал 1: открытый отказавший: административно запрещенный: открытый отказавший
Вышеупомянутое сообщение относится к Вашему серверу SSH, отклоняющему запрос Вашего клиента SSH для открытия канала стороны. Это обычно прибывает из
-D
,-L
или-w
, поскольку отдельные каналы в потоке SSH требуются, чтобы переправлять переданные данные через.Так как Вы используете
-L
(также применимый к-D
), существует две рассматриваемых опции, которые заставляют Ваш сервер SSH отклонять этот запрос:
AllowTcpForwarding
(как Steve Buzonas упомянул),PermitOpen
Эти опции могут быть найдены в
/etc/ssh/sshd_config
. Необходимо удостовериться что:
AllowTCPForwarding
или не существует, комментируется или установлен наyes
PermitOpen
или не существует, комментируется или установлен наany
[1]Кроме того, при использовании ключа SSH к подключению необходимо проверить, что запись, соответствующая SSH, вводит
~/.ssh/authorized_keys
не имеетno-port-forwarding
илиpermitopen
операторы [2].Не относящийся к Вашей конкретной команде, но несколько относящийся к этой теме также,
PermitTunnel
опция, при попытке использовать-w опцию.[1] Полный синтаксис в
sshd_config(5)
страница справочника.[2] Полный синтаксис в
authorized_keys(5)
страница справочника.
Стек протокола Bluetooth для Linux проверяет два возможности. Возможности - это еще не распространенная система для управления некоторыми привилегиями. Они могут быть обработаны модулем PAM или через расширенные атрибуты файлов. (см. http://lxr.free-electrons.com/source/net/bluetooth/hci_sock.c#l619 )
$> sudo apt-get install libcap2-bin
Устанавливает инструменты манипулирования возможностями Linux.
$> sudo setcap 'cap_net_raw,cap_net_admin+eip' `which hcitool`
Устанавливает отсутствующие возможности на исполняемости, как бит SETUID.
$> getcap !$
getcap `which hcitool`
/usr/bin/hcitool = cap_net_admin,cap_net_raw+eip
Итак, мы готовы к работе:
$>hcitool -i hci0 lescan
Set scan parameters failed: Input/output error
Да, ваш адаптер BT не поддерживает BLE
$>hcitool -i hci1 lescan
LE Scan...
, этот делает, продолжайте и нажмите кнопку на вашем устройстве.
Хорошо, по крайней мере, я частично обнаружил, почему hcitool требует полномочий пользователя root для сканирования LE, но не для нормального сканирования. Частично средства, что я определил местоположение системного вызова, который перестал работать из-за недостаточных полномочий при выполнении сканирования LE как обычного пользователя.
"Операция, не разрешенная" ошибка, сгенерирована writev системным вызовом со стеком вызовов, блокирующим следующим образом (все функции, реализованные в hci.c, посмотрите исходный код блюза):
hci_le_set_scan_parameters -> hci_send_req -> hci_send_cmd -> writev
Нормальное сканирование ("hcitool сканирование"), по-видимому, не должно отправлять запросы к контроллеру, но использует специализированный запрос ioctl, звоня:
ioctl(dd, HCIINQUIRY, (unsigned long) buf);
Кажется, что доступ для записи к контроллеру Bluetooth ограничивается, но почему и как я могу деактивировать это?