ssh连接 termux 启动sshd报错sshd: no hostkeys available -- exiting

Termux 上运行SSH Server

#安装OpenSSH
$ pkg install openssh
#运行SSH Server
$ sshd
#设置密码
$ passwd 
#获得Android IP
$ ifconfig
#客户端运行
 $ ssh android_ip -p 8022

查看ssh服务是否启动

通过

$ ps -e | grep ssh

查看ssh服务是否开启 发现输入命令之后没有反应

安装ssh

接着,我们安装下ssh

$ sudo apt-get install openssh-server openssh-client

尝试启动ssh服务

使用

$ service ssh start

sshd

解决办法

查看资料看到如下操作方式可以解决此问题 使用以下命令重新生成新的证书文件:

$ ssh-keygen -A 
$ /etc/init.d/ssh start 

重新启动sshd操作后发现没有再报之前的提示

在SSH服务器启动时,如果出现sshd: no hostkeys available的错误,通常是由于证书文件的问题。这可能是由于证书文件权限设置不当或文件丢失所导致的。下面我们将通过几个步骤进行故障排查和修复。

  1. 检查证书文件是否存在

    首先,我们需要检查SSH服务器上的证书文件是否存在。证书文件通常位于/etc/ssh/目录下。您可以使用以下命令来检查该目录下的证书文件:

    ls /etc/ssh/ssh_host_*
    

    如果证书文件不存在,您需要重新生成证书文件。

  2. 检查证书文件权限

    如果证书文件存在,我们需要检查它们的权限设置是否正确。证书文件的权限应该设置为只有root用户可读写。您可以使用以下命令来检查权限设置:

    ls -l /etc/ssh/ssh_host_*
    

    如果权限设置不正确,您可以使用以下命令来更改权限:

    sudo chmod 600 /etc/ssh/ssh_host_*
    
  3. 备份并删除证书文件

    如果以上步骤无法解决问题,您可以尝试备份并删除证书文件,然后重新生成新的证书文件。首先,创建一个备份目录:

    mkdir /etc/ssh/backup
    

    然后,将证书文件移动到备份目录:

    mv /etc/ssh/ssh_host_* /etc/ssh/backup/
    

    最后,使用以下命令重新生成新的证书文件:

    ssh-keygen -A
    

    这将自动创建新的默认的证书文件。请注意,此操作将删除现有的证书文件并生成新的默认证书文件,因此请谨慎操作。

  4. 重启SSH服务

    完成以上步骤后,您可以尝试重启SSH服务,检查是否能够正常启动。使用以下命令重启SSH服务:

    sudo systemctl restart sshd.service
    

    如果SSH服务能够正常启动,则说明问题已经解决。如果仍然出现sshd: no hostkeys available的错误,请继续排查其他可能的问题。

  5. 检查

    日志

    文件

    最后,您可以检查SSH服务器的日志文件以获取更多详细信息。日志文件通常位于/var/log/目录下。您可以使用以下命令来查看日志文件:

    sudo cat /var/log/auth.log | grep sshd: no hostkeys available
    

    这将显示与sshd: no hostkeys available错误相关的日志信息。根据日志信息,您可以进一步排查问题所在。

    总结:当SSH服务器启动失败并出现sshd: no hostkeys available错误时,可能是由于证书文件的问题所导致的。通过检查证书文件是否存在、权限设置是否正确、备份并删除证书文件、重启SSH服务和检查日志文件等步骤进行故障排查和修复,您应该能够解决这个问题。希望本文能够帮助您顺利解决SSH启动失败的问题。

    Termux-api调用api后没没反应

1.Termux-API 是一个APP,要下载安装

2.Termux里要安装调用Termux-API 插件包

3.手机里设置Termux-API的APP,应用启动权限(这里容易忘,会不能用)

下载安装APP,https://f-droid.org/packages/com.termux.api/ 安装包: pkg install termux-api 手机里自己设置,Termux-API的启动权限

可以用 termux-battery-status //查询电量