自己编译移植了ssh服务到开发板上,但是启动错误
提示没有用户0,但是root用户是存在的
并且同样的方法编译openssh到我的其他开发板是可以正常启动的,
目前感觉就是系统应用查找不到用户的存在导致的,怀疑文件系统的配置有问题。
尝试一下下面的方法:
add following line in /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
其中/var/empty/sshd修改为你自己的sshd所在目录,默认一般是/usr/local/sbin/sshd
这种方法试了吗?
修改/etc/ssh/sshd_config文件
将其中
UsePrivilegeSeparation yes
修改为
UsePrivilegeSeparation no
这个问题可能是由于编译和安装 SSH 时没有正确配置用户和权限导致的。你可以尝试以下步骤来解决问题:
1.检查 /etc/passwd 和 /etc/shadow 文件是否存在并且用户0和sshd用户是否存在。
2.检查 SSH 配置文件 /etc/ssh/sshd_config 中是否正确配置了用户和权限。
3.检查编译 SSH 时是否使用了正确的用户和权限配置。
4.检查文件系统是否正确配置,确保没有权限问题。
5.检查内核配置是否正确,确保没有权限问题。
可能你需要重新编译ssh和内核.
望采纳。
这个错误的原因很可能是因为编译后的ssh服务程序无法找到用户"sshd"。在系统中配置了sshd用户,并且该用户具有所需的权限。
您可以尝试以下步骤来解决这个问题:
确保在系统中已经存在了用户"sshd"并且具有所需的权限。
检查/etc/passwd和/etc/shadow文件确保sshd用户存在且没有被锁定。
检查/etc/group文件确保sshd用户存在于sshd组中
重新编译openssh时,确保您已经指定了正确的用户和组,并且该用户和组在系统中存在。
检查并更新系统中的文件系统配置,确保正确。
你可以尝试使用已经在其他开发板上正常运行的openssh程序来替换
检查系统日志,以查看是否有其他相关的错误信息。
检查sshd配置文件/etc/ssh/sshd_config,确保配置是正确的,特别是User和Group的配置。
可以尝试使用strace工具查看sshd进程启动时的系统调用,以了解更多关于错误的信息。
总之,这个问题很可能是由于系统配置或编译配置问题导致的。请确保您按照上述步骤进行了
希望对你有帮助,望采纳。
既然怀疑系统应用查找不到用户导致的,那就可以往这个方面去入手了,查找对应添加用户的方案去尝试了。
以下我提供一个能够添加配置用户的方案,题主你试一下,若有帮助,还望采纳,点击回答右侧采纳即可。
进入linux,创建用户组:
groupadd qhsx
创建用户:
useradd -g ejjdroot qhsx
设置或修改用户密码:
sudo ejjdroot
passwd ejjdroot
提示输入密码,并输入密码
配置ssh远程连接:
修改/etc/ssh/sshd_config文件:
vim /etc/ssh/sshd_config
在文件结尾处添加:AllowUsers 用户名称(此处注意有需要的话将原来的root用户也加上,否则,会SSH对root访问拒绝)
保存退出(wq!)
重启SSH服务:
service sshd restart
其实,这个会不会是权限的问题?
你整合ssh到开发版,你写入开发版的时候,有没有看下开发版对这块的需求或设置?
其次,你整合的ssh,有没有阉割功能或调整功能,这个也是一个问题所在,
你要知道,不同版本的ssh,有可能对不同的环境有不同的处理,这就会导致这样那样的问题产生。