小编lin*_*sek的帖子

如何将 USB 驱动程序分配给设备

这个问题有两个方面:

首先,您如何手动从 USB 设备上分离驱动程序并连接不同的驱动程序?例如,我有一个连接时自动使用 USB 存储驱动程序的设备。

USB视图输出

Vendor Id: xxxx
Product Id: xxxx
...
    Number of Interfaces: 2
    Interface Number: 0
        Name: usb-storage
        Number of Endpoints: 2
        ...
    Interface Number: 1
        Name: (none)
        Number of Endpoints: 2
        ...
Run Code Online (Sandbox Code Playgroud)

我不想使用 USB 存储驱动程序,因此在我的应用程序中,我使用该libusb库来分离 USB 存储驱动程序,然后声明该接口。然后,我可以在我的 USB 设备和我的主机 Linux 系统上运行的应用程序之间发送数据。

如何在应用程序之外手动分离驱动程序?


其次,如何自动分配驱动程序以附加到设备插件上?我目前有一个 udev 规则设置来自动设置设备权限:

SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
Run Code Online (Sandbox Code Playgroud)

我可以使用 udev 规则为 USB 设备上的特定接口分配驱动程序吗?例如,如果我希望在接口 0 上自动使用 usbnet 模块而不是 usb-storage,这在 udev 中可能吗?

drivers kernel usb udev kernel-modules

34
推荐指数
1
解决办法
5万
查看次数

如何使用 RSA 密钥设置无密码 ssh

我正在尝试在两台机器之间设置无密码 SSH 配置,但遇到了问题。我遵循了很多方法,但没有成功。这是我采取的步骤

  1. 在客户端生成身份验证密钥。(在提示输入密码时按 Enter 键[root@box1:.ssh/$] ssh-keygen -t rsa

  2. 将公钥复制到服务器。 [root@box1:.ssh/$] scp id_rsa.pub root@box2:.ssh/authorized_keys

  3. 验证已在服务器上成功创建授权密钥

  4. 执行了以下命令: [root@box1:.ssh/$] ssh root@box2 ls

我仍然被提示输入密码。我读了一篇关于 howto 的说明,上面写着“取决于正在运行的 SSH 版本......”(虽然它没有指定哪个版本需要这个),它可能需要:

  • .ssh/authorized_keys2 中的公钥
  • .ssh 的权限为 700
  • .ssh/authorized_keys2 的权限为 640

我也遵循了这些步骤,但没有成功。我已验证 home、root 和 .ssh 目录不可按组写入(根据https://unix.stackexchange.com/tags/ssh/info)。

任何人都知道我缺少什么?

谢谢

编辑:我还使用 ssh-copy-id 命令将公钥复制到第二个框并生成了.ssh/authorized_keys文件。

[root@box1:.ssh/$] ssh-copy-id -i id_rsa.pub root@box2

EDIT2:包括版本信息

// box1(系统密钥生成于)

  • Linux 2.6.34
  • OpenSSH_5.5p1 Debian-6、OpenSSL 0.9.8o 2010 年 6 月 1 日

//框2

  • Linux 2.6.33
  • Dropbear 客户端 v0.52

EDIT3:调试输出

[root@box1:.ssh/$] ssh -vvv root@box2 …
Run Code Online (Sandbox Code Playgroud)

linux ssh permissions sshd

6
推荐指数
1
解决办法
9139
查看次数

标签 统计

drivers ×1

kernel ×1

kernel-modules ×1

linux ×1

permissions ×1

ssh ×1

sshd ×1

udev ×1

usb ×1