• theneverfox@pawb.social
      link
      fedilink
      English
      arrow-up
      7
      ·
      4 days ago

      Because all those extra features are really useful. You can run all sorts of things over ssh, from sophisticated file transfer to remote development and tunneling

      Ssh is remote code execution. Under any implementation, any authentication methods should be the absolute last line of defense after you’ve properly locked down access

      • MonkderVierte@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        edit-2
        3 days ago

        Well, yeah but more features in remote code excution = more vulnerabilities. For example sftp: you could also just run ftp over vpn for the same effect. Or just cat the file over ssh. Instead, we have one big monolith.

        • theneverfox@pawb.social
          link
          fedilink
          English
          arrow-up
          3
          ·
          4 days ago

          SFTP is just FTP over SSH… Also, FTP is essentially one small step away from code execution, even on a secure network it’s better to use SFTP

          SSH isn’t many things, it’s one connection type through which you can do many things. You can’t simply cat a file over without being able to handle the throughput gracefully, otherwise you’d have to design a new layer to do exactly the same thing. The same for reading files, if it can’t gracefully spit out 10k lines in a second you couldn’t handle output

          And if you can do all that, why not allow VIM over the same connection? You’re already going to have to manage the terminal session, why not fully reflect a terminal?

          FTP is absolutely not the answer, but a server that will conditionally serve files as well as conditionally accept uploads is far more secure. The same for everything… If you want to manage users, instead of allowing remote code execution you should use an API to perform predefined tasks

          SSH isn’t meant for security or production use, it’s meant for power and flexibility. It’s generally deactivated by default for a reason, but it’s included for a reason too. It’s just really damn useful

        • WhyJiffie@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 days ago

          imo it does not really matter how many lines is the openssh codebase, but how many lines of it deals with authentication/authorization and decryption of the incoming traffic.

          then it can have all the features, but any bugs in them can only be abused by clients that were allowed access.

          still, the related part of Wireguard’s codebase is likely much shorter, because it does not have multiple authentication methods and key algorithms, and whatever else. but then it still makes sense to use sftp over wireguard, because of its authentication inside the network and relative ease of use.

    • dan@upvote.au
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 days ago

      There’s Dropbear SSH, which is the most common choice for a minimal SSH server and client, but even that is around 50,000 lines of code.