如何在 Puppy Linux 上启动 sshd?

如何在 Puppy Linux 上启动 sshd?

我已经在puppy linux上安装了sshd。有人可以告诉我如何启动 sshd 吗?

答案1

我在这里找到了在 Bionic Puppy Linux 上设置 sshd(ssh 服务器)的有用说明:PuppyLinux 时事通讯 - 2018 年 12 月

  1. 默认情况下,所有小狗都应该安装 SSH。尽管有这个名称,但这只是 SSH 的客户端部分,它允许用户登录到运行其他操作系统(例如 Raspberry Pi、Ubuntu、Antix 等)的主机。通过在 /etc/ 中查找 ssh_config 文件来确认此安装。 SSH。无需编辑此文件,但在某些情况下可能需要更改此文件的权限才能作为服务器运行。

    如果另一个 Linux 发行版(例如 Ubuntu)在同一 LAN 上运行 SSH 服务器,您可以按照步骤 10 测试 Puppy 作为客户端的操作。这不是必需的,因为我们可以在作为设置的一部分,按照步骤 8 操作本地或主机设备。

  2. 要将 SSH 作为服务器运行,需要安装 SSHD - SSH 守护程序服务器,它在端口 22(或以其他方式配置)上侦听请求访问 Host Secure Shell 的客户端。主机软件 Openssh-server 可以从 PPM 安装。从 LX Bionic pup 开始,版本为 7.6p1,在早期的 Tahrpuppies 上,版本为 6.6.1p1。

  3. 从 PPM 安装 Openssh-server 后,打开位于 的主 SSH 文件夹/etc/ssh。该文件夹必须有两个配置文件:ssh_configsshd_config,以及一个名为 moduli.conf 的文件。

    如果默认sshd_config文件很可能会出现这样的情况不是存在,从以下位置下载脚本: https://github.com/openssh/openssh-portable/blob/master/sshd_config

    必须将该脚本粘贴到新创建的文本文件或现有的 shell 脚本中,该脚本已被删除,用 sshd 脚本填充,然后重新命名。可能需要更改权限才能使文件可编辑或访问。

    如果失败,请从安装了 SSHD 的另一个操作系统 Linux 发行版复制该文件。但是,最好从默认脚本开始。

  4. sshd_config现在必须编辑该文件才能在 Puppy Linux 下运行。

    根据经验,脚本中下面的一些行似乎比其他行更重要,如 RHS (#) 注释中所示。删除下面列出的行左侧的所有“#”注释标签并进行编辑,如下所示。可选行应该能够保留为注释,因为这些是默认配置。

    Port 22 # Optional, as this is the default
    AddressFamily any # Optional ?
    LoginGraceTime 2m # Optional 
    PermitRootLogin yes # Critical for puppy linux
    PubkeyAuthentication no # Critical for initial use
    PasswordAuthentication yes # Critical for initial use 
    PermitEmptyPasswords yes # Optional, otherwise use no
    ChallengeResponseAuthentication yes # Critical for initial use
    UsePAM no # Critical
    AllowTcpForwarding yes # Optional ?
    X11Forwarding yes # If one wishes to run GUI applications in the host computer 
    X11DisplayOffset 10 # Recommended
    X11UseLocalhost yes # Optional ?
    PrintMotd no # Optional ?
    TCPKeepAlive yes # Optional ?
    Subsystem sftp /usr/lib/openssh/sftp-server # Optional ?
    
  5. 现在已准备好在终端中启动 SSHD 服务器:/etc/init.d/ssh start。应该会显示错误消息,因为尚未设置所有功能。暂时忽略这些。

  6. 无论如何,现在可以检查 SSH 是否正在运行。在终端中运行netstat -tupan它将给出主机设备正在侦听的所有端口的列表。我们正在寻找的行引用端口 22,如下所示:

    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6866/sshd 
    

    对于仅列出端口 22 的较短输出,请使用:(netstat -anplt | grep :22注意空格),如果 SSHD 正在运行,则应给出:

    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6866/sshd 
    

    没有列出端口 22 将意味着 SSH 未运行并且需要检查设置。

  7. 下一步是检查文件/etc/hosts.allow/etc/hosts.deny设置是否正确。显然,由于 Puppy Linux 以“root”用户身份运行,因此操作系统设置为自动禁止访问大多数端口作为安全措施。

    # ALL: ALL删除或用in注释hosts.deny并将数据更改hosts.allow为:

    ALL: LOCAL
    SSH: ALL
    

    这种调整对于其他需要远程访问的应用程序也很重要,例如使用 MPD 的流媒体音乐。

  8. 确保关闭防火墙以测试本地 SSH。在尝试使用单独的客户端设备之前,SSHD 应能够连接到本地主机。

    使用以下命令在终端中测试设置:ssh -vvv root@localhost 或者 ssh -vvv [email protected](其中127.0.0.1是通过使用确定的本地主机的 IP 地址ifconfig)。

    将开关设置为-vvv将会提供扩展的详细输出,以便查看操作在哪里停止。如果信息较少,请改用-v

    很可能SSHD会一直运行,直到报出以下错误:

    debug1: SSH2_MSG_KEXINIT sent
    Read from socket failed: Connection reset by peer 
    OR ssh_exchange_identification: read: Connection reset by peer
    OR ssh_exchange_identification: read: Closed by unknown
    

答案2

您通常可以使用脚本在 Puppy 上启动服务/etc/init.d

$ sudo /etc/init.d/sshd start

如果您发现它已经在运行,如下所示:

$ netstat -anplt | grep :22 
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:22     0.0.0.0:*      LISTEN      -
tcp6       0      0 :::22          :::*           LISTEN      -

然后您知道守护进程正在运行并侦听端口 22。如果是这种情况,那么您的问题可能与此线程中讨论的问题相关,标题为:无法 ssh 到小狗机器 - 连接被拒绝。

这里有一个使用 Puppy 启用的防火墙,需要添加一条允许 SSH 访问的规则,或者需要禁用它。为此,您需要使用iptables来操纵防火墙。例如:

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

相关内容