首次 SSH 访问
管理OpenWrt的方法之一是在SSH上使用命令行界面。 默认情况下,OpenWrt侦听端口“22/tcp”上的传入SSH连接。 要“ssh进入路由器”,您可以使用路由器的LAN IP地址(通常为“192.168.1.1”)在终端模拟器中输入以下命令:
ssh root@192.168.1.1
第一次通过ssh访问路由器时,您可能会看到关于 RSA key fingerprint 的警告. 如果您确定这是 OpenWrt 设备的地址,只需键入 yes
然后按回车. 然后输入您给路由器的密码,如果这是初始设置,请按回车. 下面是一个会话示例:
$ ssh root@192.168.1.1 <== 你输入这个 The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. RSA key fingerprint is SHA256:4VbDA/MOc7inPiyllF5f0r3Q6iEx89ddKdhLGBovsiY. Are you sure you want to continue connecting (yes/no)? yes <== 和这个 Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts. root@192.168.1.1's password: <== 这里输入密码 BusyBox v1.28.4 () built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 18.06.2, r7676-cddd7b4c77 ----------------------------------------------------- root@OpenWrt:~# <== 在此处键入下一个命令
要结束与你路由器的 ssh 会话 , 请键入 exit
, 然后按回车.
本页的其余部分介绍了几种终端模拟器, 可用于 Windows, Linux, 或 macOS 上访问 OpenWrt 设备.
Windows终端模拟器
可使用 Windows 终端或传统的 PowerShell、Command Prompt、ConHost 或 WSL Bash。PuTTY、MinGW(与 Git 一起安装)、Cmder、SmarTTY 和 WinSCP 等第三方程序也是可以提供 SSH 进入 OpenWrt 路由器的终端模拟器。
Windows 10/11 内置终端
Windows 终端、PowerShell 和命令提示符允许使用 SSH 客户端。该客户端现在默认可用,但如果你的 Windows 版本较老,你可以按照本指南启用 SSH。
如果您已经安装了 WSL 发行版,SSH客户端通常会预装在其中。
如果你打开了 cmd.exe
, powershell.exe
或者 wsl.exe
,传统的 ConHost 终端就会打开。 否则, 您可以从商店安装最新的 Windows Terminal 并从那里选择这些 shells 中的任何一个.
- 打开上述任何终端模拟器并输入
ssh root@192.168.1.1
(“ssh” 是命令, “root” 是您要连接的OpenWrt用户, “192.168.1.1” 是 OpenWrt 默认 IP 地址) - 将出现一条关于接受来自OpenWrt设备的新密钥的消息, 输入 “yes” 后并按回车.
- 如果由于某种原因,您重新安装了OpenWrt,那么设备将有一个不同的密钥,并且您会收到一个关于密钥不匹配的错误. 错误将说明在终端中复制粘贴删除旧密钥并继续的命令行. 执行并重试.
- 如果您想关闭会话,请输入 “exit”
Windows 10 可选的 SSH 特性还包括 SCP 客户端(通过SSH进入在OpenWrt中执行打开/编辑/下载/上传文件). 试试谷歌或度娘一些 SCP 教程来学习如何使用它. 否则, 使用 WinSCP,这对 SCP 新手来说更容易.
Powershell
Powershell 提供 SSH 访问。
Windows Linux子系统(WSL)
Windows Linux子系统 是在 Windows 上直接运行所选 Linux 环境(包括大多数命令行工具、实用程序和应用程序)的便捷方法。有关如何在 Windows 10 上安装 WSL 的详细步骤,请参阅微软的文档:https://docs.microsoft.com/en-us/windows/wsl/install-win10
putty
Putty提供命令行访问OpenWrt:
- 在你的Windows上打开
putty.exe
→ 弹出Putty的登录窗口. - 转到Putty登录窗口左侧的
Session
类别, 在右侧Host Name (or IP address)
下的文本框输入OpenWrt设备的IP地址 (e.g. 192.168.1.1) , 保留默认提供的端口 22. - 单击底部的
Open
按钮打开连接. 这将弹出一个shell窗口, 正在请求login as
. 使用您以前定义的OpenWrt密码作为 root 登录. 如果您尚未在 “root” 上设置密码, 则不会要求您输入密码. - 完成后,您将登录到OpenWrt命令行.
基于密钥的身份验证。
- 使用
puttygen.exe
生成密钥对。 将私有密钥保存到本地计算机,并将公有密钥添加到您的 OpenWrt 设备的/etc/dropbear/authorized_keys
文件中。 - Connection → SSH → Auth:在“认证参数”下的“用于身份验证的私有密钥文件”框中,指定此连接所用的私有密钥文件路径(例如之前创建的
openwrt.ppk
文件)。最好点击“浏览...”,并通过文件对话框选择该文件。
自动化连接。
- Connection → Data:在“登录详情”框中输入自动登录用户名,该用户名为
root
。 - Load, save 或者 删除存储的 session,在“Saved Sessions”中输入
openwrt.lan
,然后点击保存按钮。 - 要使用自动登录需要创建PuTTY快捷方式, 请创建一个并使用
@
符号附加保存的会话, 例如使用以下命令调用PuTTY:putty.exe @openwrt.lan
WinSCP
WinSCP 有GUI界面像window文件管理一样浏览OpenWrt的文件系统。
- 启动
WinSCP.exe
, WinSCP 的登录窗口将弹出。 - 点击左侧的「新建站点」,确保「文件协议」设置为 scp,然后在右侧将您的OpenWrt设备IP地址(192.168.1.1)输入到「主机名」中,默认端口保持为「22」。在「用户名」中输入 root,在「密码」中输入您的root 密码(如果没有设置密码可以留空)。
- 点击窗口底部的登录。
- 完成。 现在,您可以用类似 Exlorer 的方式查看 OpenWrt 文件系统了。
使用 WinSCP 集成的 GUI 编辑器编辑 OpenWrt 配置文件。
- 要使用 WinSCP 基于 GUI 的编辑器编辑 OpenWrt 配置文件,只需右键单击 WinSCP 中的文件,然后从上下文菜单中选择
编辑
。
Cmder
Cmder for Windows 是一个开源、运行在Windows系统的终端模拟器 它免费使用,并提供了一个易于操作的“命令行外壳”,允许您通过ssh连接到OpenWrt。 其吸引人的字体和配色方案对眼睛很友好。 推荐使用 Full 版本(而非 mini 版本),因为它提供了bash模拟环境,包含了一系列Unix风格的命令。
- 下载 Cmder
- 解压 cmder.zip
- 打开Cmder文件夹,然后双击Cmder图标。你会看到一个类似下面图片的Cmder窗口弹出。
- 要通过SSH连接到IP地址为192.168.1.1的OpenWrt路由器,请输入 ``ssh root@192.168.1.1``,然后按回车键。
SmarTTY
SmarTTY让您可以通过命令行访问OpenWrt,并允许您在OpenWrt中打开/编辑/下载/上传文件,并且总体上比PuTTY(下文详述的另一个工具)更现代和用户友好。
- 下载 SmarTTY 安装程序,如果您希望它作为无需安装即可运行,请选择“便携式版本”。
- 安装完成后或解压后,双击执行名为SmarTTY的可执行文件。
- 你会看到一个窗口,有两个选择,双击“设置一个新的SSH连接”(另一个选项是串行连接,对于usb-TTL加密狗和一些你连接到板上设备调试串行引脚的东西,我们现在不会使用它)。
- 窗口更改为SSH设置,请写入以下信息:
- Host name: OpenWrt设备IP地址 (默认为 192.168.1.1 )
- User Name: root (这是默认OpenWrt中的“管理员”和唯一用户)
- Password: 为您的第一次连接留空,然后写下您设置的密码(在Luci GUI中或在您第一次SSH访问后)
- 单击底部的“连接”按钮,您现在将看到一个大的终端屏幕出现
- OpenWrt 默认固件不包含 SmarTTY open/edit/view/upoad/download 所需要的sftp服务器组件, 因此 SSH 成功后在命令行执行
opkg update && opkg install openssh-sftp-server
安装sftp服务器组件。 如果下一步失败,可能需要重新启动OpenWrt设备以便该新服务能够正常启动。 - 现在你可以点击File → Open a Remote File来打开一个显示OpenWrt设备文件系统的弹出窗口,你可以在其中导航并打开文本文件(它们将以正常方式打开,在SmarTTY文本编辑器窗口中)。
- 如果你想将文件上传或下载到设备的特定文件夹,可以点击SCP菜单并从那里选择最合适的操作。
在第一次连接到设备后,SmarTTY会保存一个配置文件,因此你可以通过双击启动SmarTTY时看到的第一个窗口中的该设备图标来再次连接同一设备(使用相同的IP地址和密码)。
如果需要修改这个配置文件,可以右键点击该配置文件图标进行编辑。
Linux 终端模拟器
所有Linux发行版都会在默认安装中提供命令行SSH客户端。
- 打开一个终端模拟器,输入
ssh root@192.168.1.1
(“ssh”是命令,“root”是你连接到的OpenWrt用户,而“192.168.1.1”是OpenWrt默认的IP地址)。 - 将会收到一条关于接受来自OpenWrt设备的新密钥的消息。输入 “yes” 并按Enter键继续。
- 如果因为某些原因重新安装了OpenWrt,该设备将使用不同的密钥,并且你可能会遇到密钥不匹配的错误。错误信息将告诉你如何在终端中复制粘贴命令来删除旧密钥并继续操作。
- 如果你想关闭会话,请输入 `exit`。
Linux通常还会自带SCP/SFTP客户端(用于在OpenWrt上打开、编辑和上传/下载文件),这可能不是默认安装的一部分。你需要查阅你的发行版文档或使用包管理器界面搜索“scp”和“sftp”,以找到它并了解其当前的安装状态。 阅读SCP手册以获取命令行SCP客户端的帮助,或者在网络上查找教程来学习如何使用它。
Midnight Commander
Midnight Commander 是一款类似于 Norton Commander 的文件管理器,可以在 Linux 和 macOS 上运行。
你可以通过 Midnight Commander 访问 OpenWrt 中的远程文件:
- 按 'F9'
- 选择 'Left' 面板配置
- 选择 'Shell Link'
- 输入 'root@192.168.1.1/',然后按 OK
- 现在你将看到 OpenWrt 根目录下的文件和目录列表
它内部使用类似于 SCP 协议的 FISH 协议来传输文件,因此不需要安装 SFTP 服务器。
macOS terminal emulators
On macOS (formerly Mac OSX) any terminal emulator will allow you to ssh.
- Terminal - 内置的终端程序,可在 /Applications/Utilities 中找到。
- iTerm2 是一款功能更强大的终端程序,捐赠软件,值得购买。
要 ssh 进入位于 192.168.1.1 的 OpenWrt 路由器,请键入 ssh root@192.168.1.1
,然后按 Return 键。
ChromeOS terminal emulator
在 ChromeOS 上, 安全外壳 (SSH) 可以让你使用 SSH。