After getting my beta key for Starcraft 2 I’ve been spending a lot of time in Windows. Windows 7 is a huge improvement over Windows XP but I really miss the transparent tabbed terminals in Linux. I’ve become so used to having numerous SSH tunnels and sessions going in multiple tabs that the classic Putty Client in Windows 7 seemed very restricting. I’ve explored a few Putty alternatives and it seems that a transparent tabbed SSH client isn’t an option in Windows. I hope that there is an application that I’ve missed, but at the moment it seems you can either have a transparent Putty client with text that also becomes transparent and illegible with Putty Tray, or you can have a buggy tabbed SSH client with Putty Connection Manager. Both of these applications are less than desirable, but I have settled on Putty Tray. With Putty Tray, the console windows will minimize to the tray and not take up valuable real estate in the task bar. If used with Pageant, Putty Tray is far superior to Putty Connection Manager and it doesn’t have the usability issues that Putty Connection Manager does.
I’m still tempted to install a virtual machine and run some flavour of Linux just for the clean and visually appealing consoles.
If you have access to a ssh server you can easily tunnel your web browsing and newsgroup/IRC activity to make sure that your IP is never associated with that ..stuff you do. You can basically tunnel any port through the any ssh server. These methods can be used to build up complex chains that are almost impossible to track.
To tunnel your basic browsing through a ssh “proxy” use this command:
ssh -D 8080 -p 22 email@example.com
I used port 8080 instead of the default 80 becuase I run a webserver on my local machine and I didn’t want to mess that up.
The -D in the command specifies a local dynamic application-level port forwarding which creates a socket to listen to the specified port on the local machine. Ancy connections made to this local port are forwarded over the secure channel.
This makes it easily possible to forward all web traffic on the local system through the secure channel by setting up a simple iptables rule:
–iptables -A PREROUTING -t nat -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 8080
If you want to set up a secure ssh tunnel to connect to a specific newsgroup server you can use this command:
sudo ssh -N -p 22 firstname.lastname@example.org -f -L 443:220.127.116.11:443
The -L specifies that the given port on the local client is to be forwarded to the given host and port on the remote side. This is basically a very specific instruction that tells all traffic that is directed to localhost at port 443 (119 if you don’t like double encryption) to go to the ip address 18.104.22.168:443. Note: I couldn’t get this to work with domains for some reason.
The -N tells ssh to not execute any remote commands. So you do not get the annoying ssh session stuff that makes you leave the terminal open.
The -f tells ssh to go into the background.
I had to go through four or five iphone SCP/SSH howto tutorials before I got it to work. So I figured I’d put only the useful steps here without all the garbage that the other sites spew. Here are the useful steps that allowed me total root access through SSH and SCP to my iphone harddrive. This guide requires that you have already jailbroken your iphone. Jailbreaking is stupidly easy and there is plenty of tutorials out there on how to do it.
First download this file. You will need to unzip it.
Run that file and a black DOS window should be displayed.
Next download this file. You will also need to unzip this one.
Before we log into the iphone with SCP we need to disable Auto-Lock because when the phone goes to sleep it drops the connection. On your iphone go to Settings -> General -> Auto-Lock. Set it to Never.
Make sure you have the OpenSSH package installed on the Iphone. If you don’t then go to Cydia on your iphone and select categories. I think it is in the networking category but I could be wrong. It’s in there somewhere. Install it.
Make sure you still have that black DOS window running. Without it you will be unable to connect to your iphone.
Now run WinScp. Enter 127.0.0.1 as the Host name. Leave the port number on 22. User ‘root’ for the username and ‘alpine’ as the password. Hit the Login Button.
SCP to Iphone
You will be prompted about adding a RSA host key. Click Yes.
Now you have complete access to the Iphone’s filesystem.
If you want to SSH in then download Putty and use the same settings to SSH in. Always make sure that the itunnel black console (DOS) window is running.
I did this again today and it wouldn’t work right away. I was getting this error on the iphone tunnel black screen when I tried to use SCP to log in.
new connection !
AMDeviceNotificationSubscribe = 0
iPhone attached !
AMDeviceConnect = 0
AMDeviceIsPaired = 1
AMDeviceValidatePairing = 0
AMDeviceStartSession = 0
MobileDevice: AMDeviceStartService: AMDeviceStartService: Could not connect to USB mux (error 10061)
AMDeviceStartService = -402653131
AFCConnectionOpen = 0
I was puzzled at first but then I realized why I couldn’t SCP into my iphone. I had turned SSH off from within the SBSettings menu. How would SCP work without SSH? It won’t.