ssh-добавьте попытки добавить ключ к агенту, но в Вашей системе не работает никакой ssh-агент.
ssh имеет два различных режима работы с ключами. Или ssh соединяется с агентом и просит, чтобы агент прошел проверку подлинности, или ssh читает ключ из диска.
Как нет никакого агента, работающего на Вашей системе, которую первый режим приводит к сбою, но вторые работы, потому что нет никакого включенного агента.
Можно временно запустить агент ssh-agent bash
. Впоследствии ssh-add
должен работать без проблем.
Обычно агент запускается с Вашей настольной среды. Если Вы не используете настольную среду, необходимо удостовериться собой, что агент работает при необходимости в нем.
Если Вы подключены к удаленному хосту ssh. Затем Вы могли бы хотеть передать свой локальный агент удаленному хосту. Использовать ssh -A
если, именно это Вы хотите.
10-
как указано jasonwryan, используйте большую нумерацию (90-е хорошо). Таким образом, ваше правило не будет отменено другим. Используйте минимум ключей именно столько, сколько вам действительно нужно. Пример, ! =
& GOTO
/ LABEL
, вместо этого используйте напрямую ==
ACTION == "add", KERNEL == "sdb * ", RUN + =" / usr / bin / mount / dev / sdb1 / media "
Ваша цель была sdb1
с фиксированной командой, минимизировать слепое совпадение с помощью KERNEL == "sdb1"
Я считаю полезным создать правило отладки теней, я назвал тень, потому что я всегда оставляю его в том же файле, поэтому я использую его, когда мне это нужно.
ACTION == "добавить", KERNEL == "sdb *", RUN + = "/ bin / sh -c 'echo == >> /home/user/Desktop/udev-env.txt; env >> / home / user / Desktop / udev-env.txt '"
# ACTION ==" add ", KERNEL ==" sdb * ", RUN + =" / usr / bin / mount / dev / sdb1 / media "
Примечание: udev-env.txt
создается, тогда правило срабатывает в любом случае. Строка ==
, соответствующая одному совпадающему узлу. ENV, записанный в этом файле, может быть смесью двух или более узлов, созданных почти одновременно, это проблема буферизации stdout
.
Используйте udevadm monitor -u
, udevadm test ...
и триггер udevadm ...
, чтобы проверить, какие правила обрабатывали события.
Внутри сценариев вы должны вести журнал отладки и перехватывать неудачные команды, сохраняя их возвращаемое значение также сообщения stdout
и stderr
.
Обновление:
Ссылка: udev_237 - man udev
(Ubuntu_18.04)
RUN {type}
Обратите внимание, что запущенные программы, которые обращаются к сети или монтируют / размонтируют использование файловых систем в правилах udev запрещено из-за использования изолированной программной среды по умолчанию для systemd-udevd.service.
Я думаю, что вы здесь ищете команду udevadm
. Вы будете использовать параметры триггера
и test
, чтобы запустить повторное сканирование событий udev и протестировать конкретное событие, соответственно.
Я усвоил это на собственном горьком опыте, когда возился с новым именованием сетевых устройств в EL 7. Удачи!
Create a udev rules file
sudo nano /etc/udev/rules.d/99-removable-sd.rules
Add rule that tells udisks to automount it
SUBSYSTEM=="block", SUBSYSTEMS=="mmc", DRIVERS=="mmcblk", ATTRS{type}=="SD", ENV{UDISKS_AUTO}="1", ENV{UDISKS_SYSTEM}="0"
ATTRS{type}=="SD"
may be not required if you are using different types.
Reload rules
sudo udevadm control -R
Eject it then put back.
Reference: Archlinux Wiki: Some devices, that should be treated as removable, are not
У меня была такая же проблема с RASPBERRY PI 3 B+, возможно, приведенные выше команды могут вам помочь. Но мне это НЕ помогло. Я пытался вызвать скрипт при вставке USB-накопителя. Правила не регистрируются в системном журнале, поэтому становится очень сложно понять, какое правило сработало, а какое не удалось.
Итак, я сделал следующее:
(1 )Я создал файл правил в /etc/udev/rules.d/100 -myrule.rules
(2 )затем я выполнил командуsudo /etc/init.d/udev restart
Затем я проверил, все работает. Часть информации может быть полезной для вас, а может и не быть, но файловые системы доступны только для чтения для udev, пока не будет выполнена команда (2 ).
Эта команда позволит наблюдать за выполнением правил:
udevadm control --log-priority=debug
journalctl -f
(и udevadm control --log-priority=info
, чтобы вернуть его к нормальному уровню)