Eh, here is my problem: I am working in a webdevelopment agency (thats a problem but not the real problem, read on). Most of the time I choose the live server myself when creating a new website project. But now the customer already has a "server" (10 GB on a cheapo host!) and the "admin" refuses to give me ssh access to it. But I need to access the server via shell because many files will be transported (need to be able to upload and extract a tar) and I need to insert or create mysql dumps via command line. He argues FTP and phpmyadmin should be enough... as far as I know the webspace was just ordered to host the website, so no security critical apps are running there.
How can I either convince the admin to give me the ssh login or tell management that we need our own server? Anyone with similiar experiences?
This is really annoying as this is a very small project that should be done fast and now one has to fight in order to just get the work done...
This will make the admin angry and you happy :): php shell
If the customer doesn't wish to give you SSH access you should accept that. Perhaps they have a legitimate concern or requirement. Did your original contract or agreement mention the fact that you where expecting to have SSH access to the host?
You haven't mentioned anything that I can see that really requires you to have SSH access. I understand that you may be more comfortable doing it via SSH on the remote host, but there are alternatives methods. As a web developer should should work on being prepared to adapt to your customers requirements. Or at least you should agree on the access you will have require before you accept the job.
In your example you mention uncompressing an archive. You can do that on your local machine and transfer the uncompressed files. Find an ftp client that allows you to transfer an entire directory structure. There are many.
You mentioned you need to make changes to a mysql database. Simply hack up a script quickly that will perform the changes for you.
You need to communicate to your customer exactly what exactly needs to be done that you cannot do via file-transfer and phpadmin and have them do it. Charge them extra if you need to. If you where clear that you needed SSH access at the start, and they have not provided it, then you can probably charge them more for the additional time.
Just keep sending them detailed bills containing all the extra time you've had to spend working around their stupid requirements. If management won't back you, find another job.
Your job is to do as the customer asks, within the framework provided by that customer. Don't like it? Get another customer or change jobs.
You say that it's a very small project, yet you carry on as if you were trying to transfer gigabytes of data. If it takes a little longer to transfer the files using FTP the so be it. I'm guessing we're talking about maybe a couple of minutes, not weeks. As for importing MySQL dumps using phpMyAdmin, what's the difficulty? It's actually easier than using the command line.
It sounds to me like you want absolute control of the system for no reason other than your personal satisfaction. You certainly haven't given an actual reason for wanting it.
Many of the "cheapo hosts" don't even offer shell access, and some require you to pay extra for SSH. It might be the case that the customer already knows the host doesn't offer SSH, or the customer just doesn't want to pay for it.
When my company tried using 1and1 for a small website a couple of years ago, we quickly ran into a brick wall when we tried debugging the website on the cheapest plan available. That plan didn't have SSH, so we had to pay for an upgrade. But even then, the site's performance was so inconsistent that we had to switch to another hosting company.
To me, it does sound like you technically can do everything you need without shell access. You can untar the files on your side and upload them in batch instead of uploading the tarfile and extracting the files on the other side. PHPMyAdmin does, indeed, allow you to execute scripts and perform database dumps. Maybe I'm missing the same point that the admin failed to catch. If so, then perhaps you just haven't completely articulated the real problem that's preventing you from getting the work done.
As Geoff Fritz suggested, you can always make another plea in terms they're more likely to understand: $$$. If the lack of shell access is slowing you down significantly, I'd suggest telling them up front how much extra time you're going to have to bill, as a result of the inconvenience. If you're doing this as a fixed-cost contract, then unfortunately I think you're going to have to either run out into the country and scream every couple of hours, or find some other way to convince the customer that you need shell access.
I like shell access as much as any admin, but the customer always knows best. Just bill your time, and if you take more time because not having shell access slows you down, then tell them that.
What is your specific requirement for it? Is is the convenience of doing stuff local on the web server, or are there legitimate risks of data going clear over the wire? Can you connect with a remote mysql client (in which case, uou can try using the SSL option), or is it bound to the server's localhost or otherwise non-routable interface? If sensitive data is a concern, you can set up a simple PHP-upload page and utilize HTTPS for your uploads.
Without more details, there's little to build a case in your favor.
I can see both sides of this issue, but I have to err on the side of the customer. You may not agree with the customer and you may feel that your argument or method is technically superior, but he is in fact paying for your services, he is the boss, and he can tell you how to access his server and can limit your access to the method stipulated. It's up to you to provide the services you've contracted for while honoring his stipulations.
If I hire a plumber and I tell him that he has to take his shoes off in my house, then that's what he has to do whether he likes it or not. If he fights me on the issue then I'm going to fire him and hire someone else.