Jetson Nano开发环境搭建:SSH连接与高效文件传输实战
刚拿到Jetson Nano的开发者们,往往会被它小巧的体积和强大的AI计算能力所吸引。但很快就会发现,那块小小的屏幕和有限的输入设备成了开发路上的绊脚石。别担心,通过SSH远程连接,你可以将Nano变成一台"无头"服务器,用你最熟悉的电脑终端来操控它,彻底告别物理限制。
1. 准备工作:网络环境与IP确认
在开始SSH连接之前,确保你的Jetson Nano和开发电脑处于同一局域网内。有线连接通常是最稳定的选择,特别是当你需要进行大量数据传输时。
查看Jetson Nano的IP地址有多种方法:
如果你已经连接了显示器,打开终端输入:
ifconfig查找
eth0(有线)或wlan0(无线)部分,inet后面的就是IP地址。没有显示器时,可以通过路由器管理界面查找已连接的设备,通常标有"Jetson"或"NVIDIA"的就是你的开发板。
更专业的方法是使用
nmap扫描局域网(需要先在电脑上安装):nmap -sn 192.168.1.0/24
注意:如果IP地址经常变动,建议在路由器中为Jetson Nano设置静态IP,或者使用
avahi-daemon通过主机名访问(如jetson.local)。
2. 首次SSH连接:从零到一
确认IP后,就可以开始第一次SSH连接了。Jetson Nano默认已经安装并启用了SSH服务,这为我们省去了不少配置时间。
Windows用户可以使用PuTTY或Windows Terminal:
- 打开命令提示符或PowerShell
- 输入:
首次连接时会询问是否保存主机密钥,输入ssh nvidia@<你的NanoIP>yes继续。
macOS/Linux用户可以直接使用终端:
ssh nvidia@192.168.1.133默认密码也是nvidia,输入时不会有任何显示,这是正常的安全设计。
连接成功后,你会看到类似这样的提示符:
nvidia@jetson-nano:~$恭喜!你现在已经摆脱了小屏幕的束缚,可以在自己舒适的开发环境中操作Jetson Nano了。
3. 文件传输:SCP命令详解
SSH不仅仅能让你远程控制Jetson Nano,还内置了强大的文件传输功能——SCP(Secure Copy Protocol)。相比图形界面的拖拽操作,SCP命令更加灵活高效,特别适合批量传输和自动化脚本。
3.1 基础文件传输
从本地电脑上传文件到Jetson Nano:
scp /path/to/local/file nvidia@192.168.1.133:/home/nvidia/从Jetson Nano下载文件到本地电脑:
scp nvidia@192.168.1.133:/home/nvidia/file /local/path/3.2 文件夹传输
传输整个文件夹(包括子文件夹)需要添加-r参数:
上传文件夹:
scp -r /local/folder nvidia@192.168.1.133:/remote/path/下载文件夹:
scp -r nvidia@192.168.1.133:/remote/folder /local/path/3.3 高级技巧
- 保持文件属性:添加
-p参数可以保留文件的修改时间、访问时间和权限 - 压缩传输:使用
-C参数可以在传输过程中压缩数据,特别适合大文件 - 限速传输:
-l 800将传输速度限制在100KB/s(800Kbps),避免占用全部带宽 - 指定端口:如果SSH服务不在默认的22端口,使用
-P 2222指定端口号
4. 常见问题排查
即使按照步骤操作,有时也会遇到连接问题。以下是几个常见问题及解决方法:
连接超时或拒绝:
- 确认Jetson Nano和电脑在同一网络
- 检查防火墙设置,确保22端口开放
- 验证Jetson Nano上SSH服务正在运行:
如果未运行,使用sudo service ssh statussudo service ssh start启动
认证失败:
- 确保用户名和密码正确(默认nvidia/nvidia)
- 检查是否启用了密码认证(编辑
/etc/ssh/sshd_config,确保有PasswordAuthentication yes) - 修改密码后记得重启SSH服务:
sudo service ssh restart
文件权限问题:
- 使用
ls -l检查文件权限 - 需要写入权限时,可以使用
chmod修改:chmod 777 /path/to/folder # 谨慎使用,仅限开发环境 - 或者使用
sudo前缀执行命令
5. 提升效率:SSH免密登录
每次连接都要输入密码确实麻烦,设置SSH密钥认证可以一劳永逸地解决这个问题。原理是在本地生成一对密钥(公钥和私钥),将公钥上传到Jetson Nano,之后连接时自动验证,无需输入密码。
生成SSH密钥对(在本地电脑上操作):
ssh-keygen -t rsa -b 4096连续按回车使用默认设置,生成的密钥会保存在~/.ssh/目录下。
将公钥复制到Jetson Nano:
ssh-copy-id nvidia@192.168.1.133输入一次密码后,以后连接就再也不用输入了。
更进一步:如果你使用多个设备开发,可以在~/.ssh/config文件中添加别名:
Host nano HostName 192.168.1.133 User nvidia IdentityFile ~/.ssh/id_rsa之后只需要输入ssh nano就能连接,连IP和用户名都省了。
6. 替代方案:VS Code远程开发
如果你习惯使用VS Code,它的Remote - SSH扩展提供了更直观的远程开发体验:
- 安装Remote - SSH扩展
- 点击左下角绿色图标 > Connect to Host > Add New SSH Host
- 输入
ssh nvidia@192.168.1.133 - 连接成功后,就像在本地开发一样操作远程文件
VS Code的远程开发功能特别适合:
- 直接编辑远程文件,无需手动传输
- 使用图形化界面管理远程终端
- 调试远程运行的代码
- 利用本地IDE的强大功能(代码补全、语法高亮等)
7. 安全注意事项
便捷的同时也要注意安全,特别是当你的Jetson Nano需要暴露在公网时:
- 修改默认密码:第一时间修改nvidia用户的密码
passwd - 禁用root登录:编辑
/etc/ssh/sshd_config,设置PermitRootLogin no - 使用非标准端口:修改
Port 22为其他端口(如2222) - 定期更新系统:
sudo apt update && sudo apt upgrade -y - 考虑使用Fail2Ban:自动封锁多次尝试失败的主机
记住,SSH是你与Jetson Nano之间的桥梁,确保它的安全性就是确保你整个开发环境的安全性。