1、编译
编译工程 openssh,部署生成的相关文件(依赖 openssl);
2、修改 passwd
修改 /etc/passwd,在文件末尾添加如下内容:
sshd:x:74:74:Privilege-separate::/var/empty/sshd:/sbin/nologin
3、生成秘钥文件
# cd /apps/openssh79P/
# ./ssh-keygen -A
执行结束后生成如下文件
注意生成的文件的权限,这里需要使用 TpsFs 文件系统,若使用 FatFs 请参考第 7 小节。
4、创建 /var/empty
# mkdir /var/empty
5、启动 sshd
# /apps/openssh79P/sshd &
成功启动后 ts 可以查询到 sshd 服务线程,netstat 也可以查看到 22 端口
6、客户端连接
这里使用 SecureCRT 作为 SSH 客户端
新建 SSH2 终端
写入设备 IP
创建完成后连接,用户名密码使用系统登录用户(root:root 或者用 uadd 命令添加)。出现如下界面点击 skip 即可。
7、FatFs 下使用 openssh
相比 TpsFs,在 FatFs 下无法修改文件权限,openssh 里对部分密钥文件、目录有特殊的权限要求,会导致如下错误:
直接修改 openssh 源码,注释相关文件权限判断即可修复此问题:
1)openssh/openssh79p1/authfile.c
2) openssh/openssh79p1/sshd.c