Jetson Nano配置(六)SSH连接与高效文件传输实战

张开发
2026/6/3 12:33:14 15 分钟阅读
Jetson Nano配置(六)SSH连接与高效文件传输实战
1. Jetson Nano SSH连接基础配置刚拿到Jetson Nano开发板时最让人头疼的就是那块小小的屏幕和接不完的外设。作为一个常年和嵌入式设备打交道的开发者我强烈建议你尽早掌握SSH远程连接技能。Jetson Nano出厂时已经预装了SSH服务并默认开启这为我们省去了不少配置时间。首先需要确认你的开发板和主机在同一局域网内。我习惯用手机热点搭建临时网络这样笔记本和Nano都能连接避免了路由器配置的麻烦。连接成功后在Nano终端输入ifconfig查看IP地址你会看到类似192.168.x.x的地址。记下这个地址它就是你的Nano在网络中的门牌号。验证SSH服务是否正常运行很简单sudo systemctl status sshd如果看到active (running)字样说明服务已经就绪。万一遇到服务未启动的情况执行以下命令即可sudo systemctl enable sshd sudo systemctl start sshd第一次连接时可能会遇到主机验证提示输入yes即可。之后每次连接只需要输入密码默认用户是nvidia密码也是nvidia。建议首次登录后立即修改密码passwd2. 双向SSH连接实战技巧很多教程只讲了从主机连接Nano但实际开发中我们经常需要反向操作。比如当Nano接了大屏显示器时直接在Nano上操作反而更方便。这时就可以从Nano SSH连接回主机形成双向通道。假设你的主机IP是192.168.1.100用户名为dev那么在Nano终端输入ssh dev192.168.1.100首次连接同样需要确认主机指纹。成功登录后你就可以在Nano上直接操作主机文件了这对调试特别有用。我遇到过一个典型场景在主机上编译好的ROS包需要快速部署到Nano测试。传统做法是用U盘来回拷贝效率极低。有了双向SSH可以直接在Nano上拉取主机文件scp dev192.168.1.100:~/catkin_ws/devel/lib/* ~/catkin_ws/devel/lib/3. 高效文件传输方案SCP命令是SSH自带的文件传输工具虽然简单但非常实用。经过多次项目实战我总结出几个高效使用技巧大文件传输添加-C参数启用压缩能显著提升传输速度scp -C large_file.zip nvidia192.168.1.50:~/downloads/保留文件属性使用-p参数保持修改时间、权限等信息scp -p config.txt nvidia192.168.1.50:~/config/限速传输当网络繁忙时用-l参数限制带宽单位Kbit/sscp -l 800 video.mp4 nvidia192.168.1.50:~/videos/对于需要频繁同步的目录建议使用rsync代替scp。rsync的增量传输机制可以极大节省时间rsync -avz ~/project nvidia192.168.1.50:~/workspace/4. ROS开发中的文件传输实战在ROS机器人开发中经常需要在主机和Nano之间同步工作空间。经过多次踩坑我总结出一套可靠的工作流程在主机上完整编译工作空间catkin_make -DCMAKE_BUILD_TYPERelease同步整个devel目录到Nanoscp -r ~/catkin_ws/devel nvidia192.168.1.50:~/catkin_ws/选择性同步launch文件和配置文件scp ~/catkin_ws/src/robot_bringup/launch/* nvidia192.168.1.50:~/catkin_ws/src/robot_bringup/launch/特别注意ROS节点在Nano上运行时可能需要调整参数。我习惯在主机上维护一套开发用参数在Nano上保留部署用参数通过不同文件名区分。5. SSH免密登录配置详解每次输入密码确实烦人配置免密登录后效率能提升不少。但要注意安全风险建议只在可信网络环境下使用。具体操作分三步走在主机生成密钥对如果已有可跳过ssh-keygen -t rsa -b 4096将公钥复制到Nanossh-copy-id -i ~/.ssh/id_rsa.pub nvidia192.168.1.50测试免密登录ssh nvidia192.168.1.50如果还是提示输入密码检查Nano上~/.ssh/authorized_keys文件权限是否为600chmod 600 ~/.ssh/authorized_keys6. 常见问题排查指南遇到连接问题时可以按照以下步骤排查网络不通先用ping测试基础连接ping 192.168.1.50SSH服务未响应检查Nano上的服务状态sudo netstat -tulnp | grep 22认证失败查看Nano上的auth日志sudo tail -f /var/log/auth.log防火墙拦截临时关闭防火墙测试sudo ufw disable配置文件错误检查/etc/ssh/sshd_config中的关键参数PermitRootLogin no PasswordAuthentication yes PubkeyAuthentication yes记住修改配置后要重启服务sudo systemctl restart sshd7. 高级技巧与安全建议对于需要长期运行的远程任务建议使用tmux或screen保持会话。我常用的工作流程是在Nano上创建tmux会话tmux new -s remote_work在会话中启动任务roslaunch robot_bringup startup.launch断开连接不影响任务运行 按CtrlB然后按D重新连接查看进度tmux attach -t remote_work安全方面强烈建议修改默认SSH端口编辑/etc/ssh/sshd_config中的Port项禁用root远程登录使用fail2ban防止暴力破解定期更新系统和SSH软件包这些配置看似麻烦但能有效防止设备被入侵。我在一个商业项目中就因为疏忽了安全配置导致Nano被挖矿程序感染教训深刻。

更多文章