一键重启路由器脚本添加学习

方案 1:在本地生成密钥并手动复制

既然远程设备上没有这些工具,你可以在 本地机器(比如你正在用的 MINGW64 环境)上生成 SSH 密钥,然后手动将公钥复制到远程设备。

第一步:在本地生成 SSH 密钥

在你的本地终端(MINGW64 或 Git)执行以下命令:

APACHE
1
ssh-keygen -t rsa -b 4096

生成密钥对后,公钥通常保存在 ~/.ssh/id_rsa_wky101.pub

第二步:手动将公钥复制到远程设备

  1. 通过

    EBNF
    1
    ssh

    登录到你的远程设备:

    NGINX
    1
    ssh root@192.168.3.101
  2. 在远程设备上,检查

    BASH
    1
    ~/.ssh

    目录是否存在。如果不存在,创建该目录:

    BASH
    1
    2
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  3. 在本地机器上,使用

    EBNF
    1
    scp

    将公钥复制到远程设备:

    RUBY
    1
    scp ~/.ssh/id_rsa_wky101.pub root@192.168.3.101:/tmp/id_rsa_wky101.pub
  4. 回到远程设备,将公钥添加到

    ARCADE
    1
    ~/.ssh/authorized_keys

    文件中:

    BASH
    1
    2
    3
    cat /tmp/id_rsa_wky101.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    rm /tmp/id_rsa_wky101.pub
  5. 退出 SSH,并尝试重新登录:

    NGINX
    1
    ssh root@192.168.3.101

    如果一切设置正确,应该无需密码即可登录。

方案 2:安装 dropbear 工具

如果你的远程设备使用的是 OpenWrt 或类似系统,可以考虑安装 dropbear(轻量级 SSH 服务器工具),它自带密钥管理功能。

  1. 在远程设备上执行以下命令安装 dropbear(假设该系统有包管理器支持):

    CMAKE
    1
    2
     opkg update
    opkg install dropbear

    安装后,dropbear 自带的 SSH 服务器应该可以使用密钥认证。

  2. 按照 方案 1 的步骤生成和复制密钥。

方案 3:使用 sshpass

如果你确实不想通过密钥认证方式,可以在本地机器上安装 sshpass 工具,在脚本中使用它来自动输入密码。

在 MINGW64 环境下,使用包管理器(如 pacman)安装 sshpass

EBNF
1
pacman -S sshpass

然后,你可以在脚本里这样写:

NGINX
1
sshpass -p 'ab7878771' ssh root@192.168.3.101

此方法虽然方便,但存在密码暴露的安全风险。