一键重启路由器脚本添加学习
方案 1:在本地生成密钥并手动复制
既然远程设备上没有这些工具,你可以在 本地机器(比如你正在用的 MINGW64 环境)上生成 SSH 密钥,然后手动将公钥复制到远程设备。
第一步:在本地生成 SSH 密钥
在你的本地终端(MINGW64 或 Git)执行以下命令:
APACHE
1 |
|
生成密钥对后,公钥通常保存在 ~/.ssh/id_rsa_wky101.pub
第二步:手动将公钥复制到远程设备
通过
EBNF1
ssh
登录到你的远程设备:
NGINX1
ssh root@192.168.3.101
在远程设备上,检查
BASH1
~/.ssh
目录是否存在。如果不存在,创建该目录:
BASH1
2mkdir -p ~/.ssh
chmod 700 ~/.ssh在本地机器上,使用
EBNF1
scp
将公钥复制到远程设备:
RUBY1
scp ~/.ssh/id_rsa_wky101.pub root@192.168.3.101:/tmp/id_rsa_wky101.pub
回到远程设备,将公钥添加到
ARCADE1
~/.ssh/authorized_keys
文件中:
BASH1
2
3cat /tmp/id_rsa_wky101.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm /tmp/id_rsa_wky101.pub退出 SSH,并尝试重新登录:
NGINX1
ssh root@192.168.3.101
如果一切设置正确,应该无需密码即可登录。
方案 2:安装 dropbear
工具
如果你的远程设备使用的是 OpenWrt 或类似系统,可以考虑安装 dropbear
(轻量级 SSH 服务器工具),它自带密钥管理功能。
在远程设备上执行以下命令安装
dropbear
(假设该系统有包管理器支持):CMAKE1
2opkg update
opkg install dropbear安装后,
dropbear
自带的 SSH 服务器应该可以使用密钥认证。按照 方案 1 的步骤生成和复制密钥。
方案 3:使用 sshpass
如果你确实不想通过密钥认证方式,可以在本地机器上安装 sshpass
工具,在脚本中使用它来自动输入密码。
在 MINGW64 环境下,使用包管理器(如 pacman
)安装 sshpass
:
EBNF
1 |
|
然后,你可以在脚本里这样写:
NGINX
1 |
|
此方法虽然方便,但存在密码暴露的安全风险。