Easy GUI for SSH management

Hello world, I’m brand new to python and I’m trying to do something as a first project.

One disadvantage I’ve learned about when researching SSH is managing keys, and permissions to go along with them.

Another issue (if I actually know what I’m talking about) is that setting everything up has to be done at the physical location of the host system. And, it isn’t very private to set-up. The connection itself is secure, but the set up not so much, and it is very technical and CLI based.

My plan is to integrate ZKsnarks into the project, with the shared file functioning similarly to a Zcash wallet with a shielded address, allowing access to a shared folder while not identifying meta data about the host system, or it’s IP and Mac address.

The second part, beyond basic file sharing is Cloud computing.

Eventually I want to build a custom version of Linux (I am working on that now) that when installed as a virtual machine, allows a remotely accessible environment with dedicated resources like ram, cores, and hard drive space to be added to resource pools (like a mining pool) but instead of mining crypto currency, it would instead be a way to create a mini decentralized IAAS (infrastructure as a service) business to compete with other cloud platforms like AWS/AZURE/GOOGLE.

I think it could be great, because it would allow people to earn income (in Zcash) with basic off the shelf systems or even old computers they no longer use by dedicating storage and processing power to a distributed cloud, and do it with a high degree of anonymity and safety, because God knows what someone may want hosting for.

I could sure use some help! :stuck_out_tongue_winking_eye:

Thanks in advance! :smiley:

Managing SSH keys (assuming you’re using the default server on most Linux systems, OpenSSH) is done by editing files in the .ssh directory. This can be done in any way that you find convenient, and it should be able to be done entirely privately.

Good luck. Those platforms scale enormously, so you won’t be able to compete directly on price. Your best bet would be to compete on service - the big downside of massive companies is the correspondingly massive apathy.

Hmm. The anonymity and safety are a huge challenge. I wouldn’t trust just anyone to be allowed to run a program on my computer. For example, suppose someone rents a bunch of people’s processing power (but really their internet connections) and uses it to attack some server. Unless you can trace that back to the person who rented them, all your hosts are now in trouble for that. [1] Conversely, what if the cheap host sets a MITM internet traffic monitor on the machine? Accidental leakage of information would be easy and dangerous. Protecting your hosts from your IAAS clients and vice versa is a huge challenge.

This is decidedly non-trivial. Don’t get into it without a LOT of research.


  1. And there are worse things that could be done than a DDOS, but let’s not delve into the sorts of things people can do with someone else’s internet connection. ↩︎

2 Likes

Thanks for responding, the point of managing the SSH keys in something like a wallet is security and privacy, but also backup. That’s the first reason. You can pretty easily use a seed phrase to recover a wallet.

The second reason is for security of the users. This way, they can transmit data without any intimate knowledge of who that person is.

I think it would have to work that way, because, if someone does something stupid on infrastructure you are providing, it could cause problems for you, as you mentioned.

As far as it not competing on price, a very bare minimum price most services charge to host a virtual machine is about $50.00 per month. That would cover my Internet bill where I am.

Yeah, anonymity and safety are a huge challenge, that’s why it would use SSH and zero knowledge to establish a connection, and that connection would take place in a virtual environment that is contained and separate from the host system. Beyond that, it could be done alone, like solo crypto mining, but safer and more profitable if it was done as a pool. A pool could provide a hosting service with allot more reliability, for back ups and other redundancy.

Thanks for saying something!

Like you mentioned, a MITM attack, it would surely be less effective if they did not know who the recipients and senders were. Right? Also, how many MITM attacks have been successful for stealing cryptocurrencies? Id bet, not very many.

The custom OS I had in mind would use the TOR exclusively for connection to the internet. It would make Tor better and more secure by having more users. However, Download speeds and probably upload speeds too, suffer on TOR.

That’s why I think a different way to share files with users you don’t know and don’t want to know should be built in to its programming. That’s a major drawback of TOR. Legitimate use cases of downloading torrents for example actually compromise the integrity of the TOR network if I’m not mistaken. So, this solution would provide other incentives to prevent people from using Tor for what is was not designed for.

Maybe I’m an idiot :thinking:.

1 Like

You’d be surprised. There have been known attacks in the past that involve getting your VM on the same host as someone else’s, and the fact that you can’t know where you’re hosted hasn’t stopped them from being very real threats. Sometimes you can just play the odds and hope for something good.

What do you get for that $50 though? If you were to offer someone else some cheap hosting using a hand-me-down computer, could you give them as much for the money as the services you’re looking at?

When I said you can’t compete head-to-head on price, I also meant features. But that does also leave another window of opportunity: a super low-end offering. Maybe you can offer something that’s cheaper, but has much slower (and/or less reliable) internet, far less CPU and memory, etc; and then it can be cheaper. But bear in mind that one of your competitors is Amazon’s EC2, which can go down to a half-gig of memory on a t2.nano, for which you pay just a few dollars a month. I’m not sure how much you could do cheaply, especially since someone has to pay the price of electricity.

This is always the intention, but unless you prevent the virtual machine from accessing ANY other services, there will always be the possibility for it to leak. And there are always vulnerabilities in virtualization systems, too; are your donated hosts going to be kept up-to-date, and who is responsible if something isn’t?

There are a LOT of risks here. You’ll need to do a very thorough investigation of them and determine how to handle each one.

1 Like

That’s all really great information, and I definitely appreciate you taking your time to address it.

Now, as you mentioned, an old machine with less than perfect fiber optic connection not being ideal, I realize that, and I agree, however, assume it isn’t a solo operation, like the case of torrent p2p downloads. The download is happening from multiple sources, if one falls off, the download still happens, until the file is completed. This has been a very reliable means of transferring large files for at least 20 years and probably longer than that.

In the case of mining pools, like those used for mining crypto currency, a group of people without much for hardware can share the rewards of mining, which is a very resource intensive task. While the reward may not be substantial, the end result is creating a block. The advantage of something like this, is providing some another service not exclusive to high end GPUs and purpose built mining rigs, other important, and easily monetizable resources like RAM, cores, CPU, and storage, yes perhaps even internet connection.

These are also going to be resources that you can turn off or on. If you want full use of a device, you can turn off the virtual machine. You won’t receive any reward then, but you can do that.

Yes, some services claim that it’s only a few dollars for one terabyte of storage, but that isn’t the entire picture. Many plans start at a fixed amount per month and go up from there. You start at a basic level with $50.00 a month, that gets you 500GB, yes they will gladly upgrade that to two terabytes for a trivial $5 more. That pricing scheme is very intentional, and while it might not be entirely accurate, that’s pretty much how these services work.

Next, there could be a separate business for people who maintain the system, but that is a different business model, that is Software as a service, or something else. Infrastructure as a service only provides the physical resources, that’s important for legal, ethical, and logical reasons.

IAAS is a better model, because the clients will be responsible for the software and configurations they are using, they are responsible for updates etc. I don’t want to know what it is being used for I won’t ask, and it isn’t any of my business. If they want to create backups, they can by purchasing additional space from someone else.

The point is, is it would be a resource pool. And like you said it could be a extremely low cost option, but also, probably allot more profitable than mining Bitcoin on a laptop. :joy:

@Rosuav , thanks for taking the time to respond.

1 Like

Eventually I want to build a custom version of Linux (I am working on that now) that when installed as a virtual machine, allows a remotely accessible environment with dedicated resources like ram, cores, and hard drive space to be added to resource pools (like a mining pool) but instead of mining crypto currency, it would instead be a way to create a mini decentralized IAAS (infrastructure as a service) business to compete with other cloud platforms like AWS/AZURE/GOOGLE.

There are already several popular open source cloud platforms designed to compete with the major proprietary public cloud providers. I work on one called OpenStack and it’s written in Python. There are hundreds of companies worldwide running their own public cloud businesses with that, quite successfully.

Trying to create your own from scratch could be an interesting learning exercise, but for a reasonably secure implementation with a competitive set of features it really does take a community of thousands of developers working together full time for years to produce something like that. If your goal is to run a service rather than learning how to develop the software for it, your time is probably much better spent trying out an existing platform that fits your needs.

1 Like

Thanks for responding. And also the words of encouragement. During my search today I realized as you said, something exists already. It also exists in EXACTLY the form I would have imagined it if things somehow went perfectly from my abstract concept to finished product. And here it is:

I’ll be trying it soon. Thanks @fungi @Rosuav