<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Speed FTP</title>
	<atom:link href="http://speedftp.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://speedftp.com</link>
	<description>ftp tricks and tips</description>
	<lastBuildDate>Fri, 30 Jul 2010 11:46:39 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on why do u we need a FTP server? by Ugh</title>
		<link>http://speedftp.com/ftp/why-do-u-we-need-a-ftp-server/comment-page-1/#comment-4679</link>
		<dc:creator>Ugh</dc:creator>
		<pubDate>Fri, 30 Jul 2010 11:46:39 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/why-do-u-we-need-a-ftp-server/#comment-4679</guid>
		<description>You don&#039;t.  FTP to some aspects is a legacy protocol replaced by SFTP/SSH due to its added end to end encryption.

FTP is still used due to the number of FTP clients pre-installed on systems and the ability to do anonymous file transfers.

If you don&#039;t know why you need it, I would just leave it off.  A misconfiguration turns your system into free disk space for anyone that finds your server.

</description>
		<content:encoded><![CDATA[<p>You don&#8217;t.  FTP to some aspects is a legacy protocol replaced by SFTP/SSH due to its added end to end encryption.</p>
<p>FTP is still used due to the number of FTP clients pre-installed on systems and the ability to do anonymous file transfers.</p>
<p>If you don&#8217;t know why you need it, I would just leave it off.  A misconfiguration turns your system into free disk space for anyone that finds your server.
<p>
				<span id="reportcomment_results_div_4679"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4679 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4679"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Where is a good place for Mac shareware? by Boro Mac Man</title>
		<link>http://speedftp.com/ftp/where-is-a-good-place-for-mac-shareware/comment-page-1/#comment-4678</link>
		<dc:creator>Boro Mac Man</dc:creator>
		<pubDate>Fri, 30 Jul 2010 10:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/where-is-a-good-place-for-mac-shareware/#comment-4678</guid>
		<description>www.macupdate.com

Transmit is a nice FTP client.

For basic html, I use either Mozill&#039;s builtin html editor Composer, or u can d/l Nvu. THey&#039;re both free.

http://www.apple.com/downloads/macosx/</description>
		<content:encoded><![CDATA[<p><a href="http://www.macupdate.com" rel="nofollow">http://www.macupdate.com</a></p>
<p>Transmit is a nice FTP client.</p>
<p>For basic html, I use either Mozill&#8217;s builtin html editor Composer, or u can d/l Nvu. THey&#8217;re both free.</p>
<p><a href="http://www.apple.com/downloads/macosx/" rel="nofollow">http://www.apple.com/downloads/macosx/</a>
<p>
				<span id="reportcomment_results_div_4678"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4678 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4678"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What is SSH? Do I access it using FTP and do I need a password to access SSH or does protect my FTP password? by C.J. W</title>
		<link>http://speedftp.com/ftp/what-is-ssh-do-i-access-it-using-ftp-and-do-i-need-a-password-to-access-ssh-or-does-protect-my-ftp-password/comment-page-1/#comment-4677</link>
		<dc:creator>C.J. W</dc:creator>
		<pubDate>Fri, 30 Jul 2010 09:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/what-is-ssh-do-i-access-it-using-ftp-and-do-i-need-a-password-to-access-ssh-or-does-protect-my-ftp-password/#comment-4677</guid>
		<description>What is SSH? SSH is a protocol that uses public key cryptography to transfer data securely over insecure networks.
Introduction

If you want to access remote servers securely from Windows 9x, NT, ME, 2000 or XP and don&#039;t want to pay for programs that are freely available for UNIX-like platforms, you may find this document useful. It describes free SSH implementations for Windows.

Although this document concentrates on Windows-specific implementations, much of the content, particularly relating to Port Forwarding and Authorized Keys, applies to any SSH implementation, regardless of the platform. VPN technologies, (including IPSEC), are discussed in passing, but these are not the main focus.

Email me, fitz@jfitz.com, if you find better implementations, or if you think there&#039;s anything I can add here. Please note that I will only include references to products that are available free of charge, and I have a strong preference for open source implementations.

For more links to SSH tools for Windows, (and Mac), I&#039;d recommend trying the OpenSSH Windows/Mac pages: http://www.openssh.com/windows.html, or http://www.openssh.com/macos.html.

 
 
 
What is SSH?

SSH is a protocol that uses public key cryptography to transfer data securely over insecure networks. At the core of most SSH implementations are the &quot;ssh&quot; and &quot;scp&quot; commands.

&quot;ssh&quot; and &quot;scp&quot; are &quot;secure&quot; versions of the UNIX &quot;rsh&quot; and &quot;rcp&quot; commands, (which in turn are a bit like the more familiar &quot;telnet&quot; and &quot;ftp&quot; programs). The &quot;ssh&quot; command provides command-line, (non-GUI), access to a remote server. &quot;scp&quot; allows files to be copied to/from a remote server. Both programs use the SSH protocol to establish a secure connection and to encrypt all data passing between the client and the server.

 
 
 
What is &quot;Port Forwarding&quot; or &quot;Tunneling&quot;?

In addition to the direct access provided by the &quot;ssh&quot; and &quot;scp&quot; commands, the SSH protocol includes a feature called &quot;Port Forwarding&quot;, or &quot;Tunneling&quot;. This can be used to provide secure access to other services that do not normally encrypt data during transmission.

For example, to receive email, many email programs use the (unencrypted) POP3 protocol to connect to a mailserver on port 110. If we can SSH to the mailserver before downloading our mail, we can configure the SSH session to &quot;forward&quot; port 110 through the encrypted SSH link. Now, if we configure our email client to connect to port 110 on our local machine it will in fact be connecting to the remote mailserver, but all the data, (i.e. our incoming email), will be transferred over the encrypted SSH link.

If we also forward port 25, (which normally handles SMTP, the outgoing email protocol), then both incoming and outgoing email will be encrypted.

If you are mainly interested in securing your Windows email client, you could try jumping straight to my step-by-step guide to configuring a PuTTY SSH client for port forwarding email traffic.

Any number of ports can be forwarded in a single SSH session. For example, we could also forward port 80, (HTTP), to provide secure access to a corporate webserver. In effect, it is usually possible to create a pretty good approximation to a VPN, (Virtual Private Network), just by forwarding a handful of common ports, and using scp, (or WinSCP), to transfer files. In fact, a VPN is roughly equivalent to an SSH session where everything is being forwarded over a single secure channel.

 
 
 
Should I use SSH or a VPN?

If you are trying to decide between SSH and a VPN, I find that SSH is generally appropriate in situations where occasional remote access is needed to specific services, (for example, checking email, downloading files). If persistent access to a wide range of services is required, (for example, working exclusively on a corporate network while telecommuting), then a VPN is probably a better choice.

One of the problems with a VPN is that both the client and server need to be customized for the VPN to work, whereas most modern UNIX-like servers will provide SSH access by default when a user account is established, (so only the client PC needs configuring). A second problem is that traditional VPNs tended to be difficult to configure correctly, particularly on the server-side. However, solutions such as OpenVPN, (http://openvpn.net), are much easier to install and configure than many of the more traditional, IPSEC-based VPN solutions, so if you have administrative (root) privileges on the server it may be worth exploring OpenVPN. A VPN may require more work initially to get running on the server, but it will ultimately provide more flexibility on the client.

 
 
 
PuTTY

PuTTY, (and its file transfer utility, pscp), are excellent Windows ssh/scp implementations, and are a piece of cake to get up and running.

Download putty.exe and pscp.exe here: http://www.chiark.greenend.org.uk/~sgtatham/putty/, and you&#039;re ready to go. These programs are not zipped and do not require any installation.

When you run PuTTY, a configuration screen is presented first. It&#039;s a good idea to play with the configuration until you get colors, fonts and other settings that suit you. You can then give the session a name and save it, so it&#039;s easy to restore these settings next time you run PuTTY, (just double-click the stored session name). This process can be a little awkward because you need to exit and restart PuTTY to update a stored session, but once you have a good set of settings saved, you can use that session as a template to create other stored sessions for different host machines.

To help you get up and running with PuTTY, I&#039;ve created a step-by-step guide to configuring a &quot;typical&quot; PuTTY session, (including port forwarding for incoming/outgoing email). You can check it out here: http://www.jfitz.com/tips/putty_config.html

When you first connect to a new machine using PuTTY or pscp, they will give you a message to indicate that they don&#039;t recognize the machine. Choose &quot;OK&quot; to add the machine to the list of known hosts and to continue connecting.

PuTTY works a bit like an xterm. If you highlight text with the mouse it is automatically copied to the clipboard. A right-click of the mouse will paste the copied text at the command-line cursor position. Right-click anywhere on PuTTY&#039;s Title Bar, (or left-click on the PuTTY icon in the top left corner), to access a menu where the current session settings can be changed.

To remove PuTTY automatically, run &quot;putty -cleanup&quot;, (without the quotes). To do the job manually, delete the files you downloaded and use regedit to remove all the keys under
HKEY_CURRENT_USER-&gt;Software-&gt;SimonTatham-&gt;PuTTY.

 
 
 
WinSCP

WinSCP provides an easy-to-use graphical interface to &quot;scp&quot; functionality. It creates an SSH link to the remote server, then displays local and remote files in &quot;Explorer-like&quot; windows. Copying files securely to/from the remote machine is as simple as dragging and dropping, (or cutting and pasting), files in the WinSCP windows.

As of version 3, WinSCP also supports SFTP, (&quot;secure ftp&quot;). Unless you specifically need to use SFTP, it&#039;s probably as easy to stick with SCP -- the basic WinSCP functionality handles many of the issues that SFTP was designed to address.

You can download WinSCP here: http://winscp.net/eng/

WinSCP starts with a configuration screen and can save session settings in a manner that is very similar to PuTTY.

As of version 3, WinSCP includes a &quot;Cleanup&quot; option that allows you to remove any possibly sensitive settings that may have been created on your computer. With version 2, to remove WinSCP delete WinSCP2.exe and, to clean up the registry, use regedit to remove all the keys under
HKEY_CURRENT_USER-&gt;Software-&gt;Martin Prikryl-&gt;WinSCP 2.

WinSCP is released under the GPL. The source code is available for download with the application. WinSCP is partly based on PuTTY code, (it is usually pretty up-to-date -- check the WinSCP site for version details).

 
 
 
pscp

pscp is a companion program of PuTTY. It is a pretty straightforward Windows implementation of scp. It&#039;s a command-line program only, so you need to run it in an MS-DOS window.

The basic format of a pscp command, (or any scp command for that matter), is:

pscp myusername@remotehost:remotefilespec localfilespec

...to download from remotehost to your local machine, or:

pscp localfilespec myusername@remotehost:remotefilespec

...to upload to remotehost from your local machine.

Type pscp with no arguments for a list of other parameters that can be supplied on the command line.

 
 
 
Tera Term Pro/TTSSH

Another good terminal emulation package that supports SSH is Tera Term Pro. You can download it here: http://hp.vector.co.jp/authors/VA002416/teraterm.html

Tera Term Pro comes with a regular Windows setup program. As with PuTTY, I&#039;d recommend changing the terminal settings to suit your preferences. Save the setup as teraterm.ini to replace the defaults.

By default, Tera Term Pro does not include SSH. For this, you need to download the SSH extension, TTSSH. The original download site was here: http://www.zip.com.au/~roca/ttssh.html, but this doesn&#039;t seem to be accessible any more. You can try the following mirror instead: http://public.planetmirror.com/pub/ttssh/, (the required file is ttssh154.zip).

Unzip this file in the same directory that Tera Term Pro is installed in. It adds a program called ttssh.exe. Run this program in place of Tera Term Pro itself, (ttermpro.exe), and you should now have SSH available as an option during connect. Additionally, you will find that some SSH options are added to the Setup menu. You may wish to change the defaults so that SSH, (on port 22), is the default connection method.

Tera Term Pro with TTSSH used to be the best free SSH implementation for Windows, but, in my opinion at least, recent versions of PuTTY have surpassed them for ease of use and improved functionality. You may wish to try both and draw your own conclusions.

 
 
 
Command line/X Windows - Cygwin/OpenSSH

If you&#039;re happiest working in a UNIX-like command-line environment, and are already familiar with the &quot;ssh&quot; and &quot;scp&quot; commands, you may want to try Cygwin, (http://www.cygwin.com/). Cygwin is a pretty complete GNU based, (i.e. UNIX-like), environment for Windows.

If you don&#039;t want/need the full Cygwin UNIX-like environment, OpenSSH for Windows, (http://sshwindows.sourceforge.net/), is basically a &quot;cut-down&quot; version of Cygwin which includes command line ssh/scp/sftp functionality. It also includes ssh/sftp servers, and it has a fairly straightforward Windows installation program. (Note that OpenSSH for Windows replaces the older, and no longer maintained, Network Simplicity OpenSSH server solution, http://www.networksimplicity.com/openssh/.)

If you do choose Cygwin, and you are comfortable working in the X-Windows environment, in addition to the rich selection of GNU command-line programs, (including sshd, ssh, scp and sftp), there are also Cygwin ports of XFree86, (http://cygwin.com/xfree/), KDE, (http://kde-cygwin.sourceforge.net/), and Gnome, (http://cygnome.sourceforge.net/). While this is no substitute for dual-booting with a good Linux distro or BSD release, it is handy for doing quick X-Windows work on a server without needing to reboot your Windows machine. I haven&#039;t used Cygwin&#039;s X-Windows tools extensively, but I have noticed that the quality and stability seems to be improving with each new release.

 
 
 
Known Hosts

The &quot;known hosts&quot; list contains the public keys of host machines that you &quot;trust&quot; when using ssh or scp. All implementations of ssh/scp, (including PuTTY, WinSCP and TTSSH), will give warnings if you are connecting to a new machine that is not in the list of known hosts. In addition, they will refuse to connect if the host&#039;s public key does not match the stored value.

PuTTY stores the list of known hosts in the registry, under the key:

HKEY_CURRENT_USER-&gt;Software-&gt;SimonTatham-&gt;PuTTY-&gt;SshHostKeys.

WinSCP also stores the known hosts in the registry, under the key:

HKEY_CURRENT_USER-&gt;Software-&gt;Martin Prikryl-&gt;WinSCP 2-&gt;SshHostKeys.

Tera Term Pro stores its list of known hosts in the following file:

C:&quot;Program Files&quot;ttermprossh_known_hosts

(assuming the program was installed in the default folder).

If a host machine&#039;s public key is legitimately changed, (as part of an upgrade for example), you will need to remove the old key from the file, (or the registry in the case of PuTTY or WinSCP), to successfully connect to that host. You should, of course, be 100% sure that the key was genuinely changed, and that this is not a hacker&#039;s machine masquerading as the host -- this is why these keys are stored and checked in the first place.

 
 
 
Automatic login

With any of the installations covered so far we can only establish an SSH connection provided we supply a password each time. It is possible to automate SSH connections by generating &quot;passphrase-less&quot; secure keys and modifying our connection settings to use the new keys. In general, I would only recommend this procedure if you have a specific requirement for automating file transfers, and you clearly understand the security implications.

Keys can be generated on the Windows client-side, using PuTTYGen, or on the server-side, using ssh-keygen. Either program will generate a public key file and a private key file. Different key file combinations can be generated for different SSH protocol versions. If you specify a blank &quot;passphrase&quot;, then only the key files will be required to authenticate the connection, thereby allowing unattended connections. (If you include a passphrase you will benefit from a &quot;doubly-secure&quot; authentication, based on both the key and the passphrase.)

To use the keys, save the key files in a secure location on the client machine. Then copy the contents of the public key file into the file $HOME/.ssh/authorized_keys, (SSH protocol version 1), or $HOME/.ssh/authorized_keys2, (SSH protocol version 2), on the server machine. Finally, modify the PuTTY, WinSCP or TTSSH session details so that it uses the saved private key file, (making sure it also uses the correct protocol for the specified key). You will find the option to specify the Private Key File under the SSH settings.

Assuming you&#039;ve got the right files in the right places, and the correct session settings, when you attempt to connect you should find that you can connect without supplying a password or passphrase.

If you are using Cygwin and the command-line ssh/scp versions, you can check the man pages for ssh to determine where you need to save your key files so that the ssh and scp commands will connect without requiring a password/passphrase.

This &quot;passphrase-less&quot; approach is reasonably secure, provided access to the client machine is restricted. However, if someone manages to steal your private key file, (which might not be that difficult on most Windows machines), your server account will be fully compromised.

 
 
 
SSH Servers

The following is a brief introduction to SSH server software for Windows.

Cygwin, (http://www.cygwin.com), includes a port of the OpenSSH server software. Cygwin is basically a GNU, (UNIX-like), subsystem that runs on 32-bit Windows. To get SSH support for Cygwin, install the &quot;openssh&quot; package in addition to the basic Cygwin packages.

If you have any problems installing and configuring Cygwin &quot;by hand&quot;, you could also try http://sshwindows.sourceforge.net/. This implementation basically wraps Cygwin&#039;s OpenSSH port in a package that includes a standard Windows installation program.

If you have concerns about running open source secure services, such as OpenSSH or OpenVPN, on Windows, the main alternative is the IPSEC functionality that comes built-in to Windows 2000 servers. IPSEC is fully supported by Microsoft, and Windows-compatible implementations are also available for most *nix. This seems intuitively more secure, since it involves fewer components that are not integral parts of the Windows O/S.

You could also use Windows Terminal Services. This has built-in encryption and has the advantage that it gives you GUI access. You might want to use this in conjunction with IPSEC if you have any concerns about the Terminal Services encryption algorithms.

If you prefer open source solutions, it is still possible to get secure remote GUI access to a Windows server using freely available software. VNC, (http://www.realvnc.com/), provides remote GUI access to Windows machines, and it uses predictable port assignment, so a VNC client session can be port-forwarded over an SSH link provided the Windows server is running an SSH server, (in addition to the VNC server).

I believe it is also possible to port-forward a Terminal Services client session over SSH -- the server appears to use port 3389 by default according to the following Microsoft support article: http://support.microsoft.com/default.aspx?scid=kb;en-us;150543.

 
 
 
Old Versions of this Document

The previous version of this document, (which you may find useful if you are using older versions of Windows SSH utilities), is available here: http://www.jfitz.com/tips/ssh_for_windows_doc_version2.html.

 
 
 
Summary of Links in this Document

OpenSSH Windows page: http://www.openssh.com/windows.html 
OpenSSH Mac page: http://www.openssh.com/macos.html 
OpenVPN, an open source, SSL VPN solution: http://openvpn.net 
PuTTY, pscp and related tools: http://www.chiark.greenend.org.uk/~sgtatham/putty/ 
Configuring PuTTY: http://www.jfitz.com/tips/putty_config.html 
WinSCP: http://winscp.net/eng/ 
Tera Term Pro: http://hp.vector.co.jp/authors/VA002416/teraterm.html 
TTSSH, (Tera Term Pro SSH extension): http://www.zip.com.au/~roca/ttssh.html 
TTSSH, (mirror site): http://public.planetmirror.com/pub/ttssh/ 
Cygwin: http://www.cygwin.com/ 
XFree86 for Cygwin: http://cygwin.com/xfree/ 
KDE for Cygwin: http://kde-cygwin.sourceforge.net/ 
Gnome for Cygwin: http://cygnome.sourceforge.net/ 
OpenSSH for Windows: http://sshwindows.sourceforge.net/ 
Microsoft&#039;s Terminal Services Advanced Client FAQs: http://www.microsoft.com/windows2000/techinfo/administration/terminal/tsacfaq.asp 
Microsoft Terminal Services TCP port support article: http://support.microsoft.com/default.aspx?scid=kb;en-us;150543 
VNC - Remote GUI access for Windows: http://www.realvnc.com/ 
 
 
 
Revision History

Version 1.0     22 June 1999 - Initial document
Version 2.0     22 January 2001 - Revised format, rewrote much of the content
Version 2.1     7 February 2001 - Added section on ssh servers
Version 2.2     16 November 2001 - Added notes on PuTTY port forwarding and Cygwin
Version 2.3     3 December 2001 - Removed link to commercial software
Version 2.4     6 December 2001 - Added section on WinSCP
Version 2.5     28 January 2002 - Added link to PuTTY configuration guide
Version 3.0     30 January 2002 - Rewrote much of the content
Version 3.1     6 March 2002 - Started Questions and Answers section, (ftp solution)
Version 3.2     27 March 2002 - Added psftp question/answer
Version 3.3     8 April 2002 - Added tunneling HTTP question/answer
Version 4.0     23 April 2002 - Revised format
Version 4.1     11 May 2002 - Expanded SSH server section, reintroduced Revision History
Version 4.1.1  15 May 2002 - Added links to Cygwin packages: XFree86, KDE and Gnome
Version 4.1.2  17 July 2003 - Updated WinSCP links
Version 4.2     25 May 2004 - Edited and updated links
Version 4.2.1  8 July 2004 - Mentions PuTTY&#039;s &quot;-cleanup&quot; option
Version 4.2.2  21 March 2005 - Updated WinSCP links
Version 4.2.3  29 March 2006 - Added link to OpenVPN

 
 
 
Questions and Answers

Question:
Subject: FTP solution
I have a school PC running Windows NT terminal server on Citrix on Red Hat and Windows NT server 4.0 at home. I have next to no access at school, and can&#039;t install anything, but I can access HTTP (and SSH via a computer on the edge of the firewall). What I want to do is copy files from home, through the firewall, to and from school. Is this possible using a GUI? If not is it possible another way? How?

Answer:
You can use WinSCP to do exactly what you describe. It uses the SSH protocol to transfer files, and provides an &quot;Explorer-like&quot; GUI for dragging/dropping files.

If you can SSH directly to the internal box through the firewall, then WinSCP will work &quot;as-is&quot;.

If not, then you need a little bit of port-forwarding to get where you want to go: 
Log onto the firewall, (or the machine that is directly accessible via the firewall), using SSH, forwarding an arbitrary local port to port 22 on the internal machine. 
When you run WinSCP connect to &quot;localhost&quot; on the arbitrary port you selected. 
For example: 
Say &quot;schoolfirewall.myschool.edu&quot; is your school&#039;s firewall, (or the machine that is visible outside the firewall). 
From &quot;schoolfirewall.myschool.edu&quot;, you are trying to access a machine called mypc.myschool.edu&quot;, (which is not visible outside the firewall). 
You (randomly) pick port 2200 as the local port to forward. 
Create, (and save), a PuTTY session that connects to &quot;schoolfirewall.myschool.edu&quot; using SSH, with Local Forwarding of port &quot;2200&quot; to &quot;mypc.myschool.edu:22&quot;, (specified in the &quot;SSH Tunnels&quot; section). 
Before running WinSCP, run PuTTY using the saved session, (this will connect to the firewall with port 2200 forwarded - you must leave PuTTY connected for the duration of the WinSCP session). 
Run WinSCP. Connect to &quot;localhost&quot; on port 2200. This will in fact be connecting to the SSH server on port 22 of &quot;mypc.myschool.edu&quot;. 
Provide the appropriate login details for &quot;mypc.myschool.edu&quot;, and you should now be able to drag/drop files to/from the internal machine. 
Notes: 
&quot;mypc.myschool.edu&quot;, (the internal server), needs to be running an SSH server. Red Hat should have that installed by default. You can also get a version for Windows if you need it, (see the section on SSH Servers). 
If Local Forwarding to &quot;mypc.myschool.edu:22&quot; doesn&#039;t work, try using the internal IP address of the machine instead - it&#039;s possible that your client or the firewall can&#039;t resolve the internal address. For example, if &quot;mypc.myschool.edu&quot; is at IP address &quot;10.0.2.100&quot;, try forwarding to &quot;10.0.2.100:22&quot;. 
Question:
Subject: psftp
Why not use psftp, (PuTTY&#039;s implementation of sftp)?

Answer:
Note: sftp is a &quot;secure ftp&quot; program. It works like a regular ftp client, but uses SSH to secure the traffic passing between the client and the server. As of version 3, WinSCP also supports sftp functionality.

I have a couple of niggling concerns with sftp: 
sftp requires sftp-server on the server side. Some sites don&#039;t enable sftp-server, so it can be annoying to become overly dependant on sftp. All the functionality of sftp can be achieved with ssh/scp, without the need for new server-side programs. 
sftp adds a new layer of protocol, which introduces new possibilities for security vulnerabilities. 
My preference is to stick with tools that are implemented using the &quot;basic&quot; SSH protocols, but I accept the point that sftp would also get the job done, and may be easier to work with in many situations.

Question:
Subject: tunneling HTTP
Can I tunnel all my HTTP traffic through an SSH connection to a friend&#039;s Linux host?

Answer:
Tunneling only works from one host to another (single) host.

To tunnel all HTTP requests, you would need to establish tunnels between your machine and every other machine on the internet. Tunneling HTTP requests to a handful of webservers behind a firewall is feasible, but directly securing all HTTP traffic is not.

However, it is possible to tunnel HTTP requests indirectly:

You could install a HTTP proxy on the Linux machine, (such as squid, http://www.squid-cache.org/), then tunnel communications with the proxy, (port 3128 by default for squid). On the client machine, the HTTP proxy would appear to be running on localhost:3128. It would in fact be talking to squid on port 3128 on the Linux box.

This will secure traffic between your machine and the Linux box. However, the actual HTTP requests from squid to the rest of the Internet are not, (and cannot), be secured, (unless you somehow had SSH or SSL access to every other machine on the Internet). Given this fact, there&#039;s little to be gained from tunneling HTTP access through a proxy, unless you specifically want to encrypt the data between your machine and the proxy.

</description>
		<content:encoded><![CDATA[<p>What is SSH? SSH is a protocol that uses public key cryptography to transfer data securely over insecure networks.<br />
Introduction</p>
<p>If you want to access remote servers securely from Windows 9x, NT, ME, 2000 or XP and don&#8217;t want to pay for programs that are freely available for UNIX-like platforms, you may find this document useful. It describes free SSH implementations for Windows.</p>
<p>Although this document concentrates on Windows-specific implementations, much of the content, particularly relating to Port Forwarding and Authorized Keys, applies to any SSH implementation, regardless of the platform. VPN technologies, (including IPSEC), are discussed in passing, but these are not the main focus.</p>
<p>Email me, <a href="mailto:fitz@jfitz.com">fitz@jfitz.com</a>, if you find better implementations, or if you think there&#8217;s anything I can add here. Please note that I will only include references to products that are available free of charge, and I have a strong preference for open source implementations.</p>
<p>For more links to SSH tools for Windows, (and Mac), I&#8217;d recommend trying the OpenSSH Windows/Mac pages: <a href="http://www.openssh.com/windows.html" rel="nofollow">http://www.openssh.com/windows.html</a>, or <a href="http://www.openssh.com/macos.html" rel="nofollow">http://www.openssh.com/macos.html</a>.</p>
<p>What is SSH?</p>
<p>SSH is a protocol that uses public key cryptography to transfer data securely over insecure networks. At the core of most SSH implementations are the &#8220;ssh&#8221; and &#8220;scp&#8221; commands.</p>
<p>&#8220;ssh&#8221; and &#8220;scp&#8221; are &#8220;secure&#8221; versions of the UNIX &#8220;rsh&#8221; and &#8220;rcp&#8221; commands, (which in turn are a bit like the more familiar &#8220;telnet&#8221; and &#8220;ftp&#8221; programs). The &#8220;ssh&#8221; command provides command-line, (non-GUI), access to a remote server. &#8220;scp&#8221; allows files to be copied to/from a remote server. Both programs use the SSH protocol to establish a secure connection and to encrypt all data passing between the client and the server.</p>
<p>What is &#8220;Port Forwarding&#8221; or &#8220;Tunneling&#8221;?</p>
<p>In addition to the direct access provided by the &#8220;ssh&#8221; and &#8220;scp&#8221; commands, the SSH protocol includes a feature called &#8220;Port Forwarding&#8221;, or &#8220;Tunneling&#8221;. This can be used to provide secure access to other services that do not normally encrypt data during transmission.</p>
<p>For example, to receive email, many email programs use the (unencrypted) POP3 protocol to connect to a mailserver on port 110. If we can SSH to the mailserver before downloading our mail, we can configure the SSH session to &#8220;forward&#8221; port 110 through the encrypted SSH link. Now, if we configure our email client to connect to port 110 on our local machine it will in fact be connecting to the remote mailserver, but all the data, (i.e. our incoming email), will be transferred over the encrypted SSH link.</p>
<p>If we also forward port 25, (which normally handles SMTP, the outgoing email protocol), then both incoming and outgoing email will be encrypted.</p>
<p>If you are mainly interested in securing your Windows email client, you could try jumping straight to my step-by-step guide to configuring a PuTTY SSH client for port forwarding email traffic.</p>
<p>Any number of ports can be forwarded in a single SSH session. For example, we could also forward port 80, (HTTP), to provide secure access to a corporate webserver. In effect, it is usually possible to create a pretty good approximation to a VPN, (Virtual Private Network), just by forwarding a handful of common ports, and using scp, (or WinSCP), to transfer files. In fact, a VPN is roughly equivalent to an SSH session where everything is being forwarded over a single secure channel.</p>
<p>Should I use SSH or a VPN?</p>
<p>If you are trying to decide between SSH and a VPN, I find that SSH is generally appropriate in situations where occasional remote access is needed to specific services, (for example, checking email, downloading files). If persistent access to a wide range of services is required, (for example, working exclusively on a corporate network while telecommuting), then a VPN is probably a better choice.</p>
<p>One of the problems with a VPN is that both the client and server need to be customized for the VPN to work, whereas most modern UNIX-like servers will provide SSH access by default when a user account is established, (so only the client PC needs configuring). A second problem is that traditional VPNs tended to be difficult to configure correctly, particularly on the server-side. However, solutions such as OpenVPN, (<a href="http://openvpn.net" rel="nofollow">http://openvpn.net</a>), are much easier to install and configure than many of the more traditional, IPSEC-based VPN solutions, so if you have administrative (root) privileges on the server it may be worth exploring OpenVPN. A VPN may require more work initially to get running on the server, but it will ultimately provide more flexibility on the client.</p>
<p>PuTTY</p>
<p>PuTTY, (and its file transfer utility, pscp), are excellent Windows ssh/scp implementations, and are a piece of cake to get up and running.</p>
<p>Download putty.exe and pscp.exe here: <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" rel="nofollow">http://www.chiark.greenend.org.uk/~sgtatham/putty/</a>, and you&#8217;re ready to go. These programs are not zipped and do not require any installation.</p>
<p>When you run PuTTY, a configuration screen is presented first. It&#8217;s a good idea to play with the configuration until you get colors, fonts and other settings that suit you. You can then give the session a name and save it, so it&#8217;s easy to restore these settings next time you run PuTTY, (just double-click the stored session name). This process can be a little awkward because you need to exit and restart PuTTY to update a stored session, but once you have a good set of settings saved, you can use that session as a template to create other stored sessions for different host machines.</p>
<p>To help you get up and running with PuTTY, I&#8217;ve created a step-by-step guide to configuring a &#8220;typical&#8221; PuTTY session, (including port forwarding for incoming/outgoing email). You can check it out here: <a href="http://www.jfitz.com/tips/putty_config.html" rel="nofollow">http://www.jfitz.com/tips/putty_config.html</a></p>
<p>When you first connect to a new machine using PuTTY or pscp, they will give you a message to indicate that they don&#8217;t recognize the machine. Choose &#8220;OK&#8221; to add the machine to the list of known hosts and to continue connecting.</p>
<p>PuTTY works a bit like an xterm. If you highlight text with the mouse it is automatically copied to the clipboard. A right-click of the mouse will paste the copied text at the command-line cursor position. Right-click anywhere on PuTTY&#8217;s Title Bar, (or left-click on the PuTTY icon in the top left corner), to access a menu where the current session settings can be changed.</p>
<p>To remove PuTTY automatically, run &#8220;putty -cleanup&#8221;, (without the quotes). To do the job manually, delete the files you downloaded and use regedit to remove all the keys under<br />
HKEY_CURRENT_USER->Software->SimonTatham->PuTTY.</p>
<p>WinSCP</p>
<p>WinSCP provides an easy-to-use graphical interface to &#8220;scp&#8221; functionality. It creates an SSH link to the remote server, then displays local and remote files in &#8220;Explorer-like&#8221; windows. Copying files securely to/from the remote machine is as simple as dragging and dropping, (or cutting and pasting), files in the WinSCP windows.</p>
<p>As of version 3, WinSCP also supports SFTP, (&#8220;secure ftp&#8221;). Unless you specifically need to use SFTP, it&#8217;s probably as easy to stick with SCP &#8212; the basic WinSCP functionality handles many of the issues that SFTP was designed to address.</p>
<p>You can download WinSCP here: <a href="http://winscp.net/eng/" rel="nofollow">http://winscp.net/eng/</a></p>
<p>WinSCP starts with a configuration screen and can save session settings in a manner that is very similar to PuTTY.</p>
<p>As of version 3, WinSCP includes a &#8220;Cleanup&#8221; option that allows you to remove any possibly sensitive settings that may have been created on your computer. With version 2, to remove WinSCP delete WinSCP2.exe and, to clean up the registry, use regedit to remove all the keys under<br />
HKEY_CURRENT_USER->Software->Martin Prikryl->WinSCP 2.</p>
<p>WinSCP is released under the GPL. The source code is available for download with the application. WinSCP is partly based on PuTTY code, (it is usually pretty up-to-date &#8212; check the WinSCP site for version details).</p>
<p>pscp</p>
<p>pscp is a companion program of PuTTY. It is a pretty straightforward Windows implementation of scp. It&#8217;s a command-line program only, so you need to run it in an MS-DOS window.</p>
<p>The basic format of a pscp command, (or any scp command for that matter), is:</p>
<p>pscp myusername@remotehost:remotefilespec localfilespec</p>
<p>&#8230;to download from remotehost to your local machine, or:</p>
<p>pscp localfilespec myusername@remotehost:remotefilespec</p>
<p>&#8230;to upload to remotehost from your local machine.</p>
<p>Type pscp with no arguments for a list of other parameters that can be supplied on the command line.</p>
<p>Tera Term Pro/TTSSH</p>
<p>Another good terminal emulation package that supports SSH is Tera Term Pro. You can download it here: <a href="http://hp.vector.co.jp/authors/VA002416/teraterm.html" rel="nofollow">http://hp.vector.co.jp/authors/VA002416/teraterm.html</a></p>
<p>Tera Term Pro comes with a regular Windows setup program. As with PuTTY, I&#8217;d recommend changing the terminal settings to suit your preferences. Save the setup as teraterm.ini to replace the defaults.</p>
<p>By default, Tera Term Pro does not include SSH. For this, you need to download the SSH extension, TTSSH. The original download site was here: <a href="http://www.zip.com.au/~roca/ttssh.html" rel="nofollow">http://www.zip.com.au/~roca/ttssh.html</a>, but this doesn&#8217;t seem to be accessible any more. You can try the following mirror instead: <a href="http://public.planetmirror.com/pub/ttssh/" rel="nofollow">http://public.planetmirror.com/pub/ttssh/</a>, (the required file is ttssh154.zip).</p>
<p>Unzip this file in the same directory that Tera Term Pro is installed in. It adds a program called ttssh.exe. Run this program in place of Tera Term Pro itself, (ttermpro.exe), and you should now have SSH available as an option during connect. Additionally, you will find that some SSH options are added to the Setup menu. You may wish to change the defaults so that SSH, (on port 22), is the default connection method.</p>
<p>Tera Term Pro with TTSSH used to be the best free SSH implementation for Windows, but, in my opinion at least, recent versions of PuTTY have surpassed them for ease of use and improved functionality. You may wish to try both and draw your own conclusions.</p>
<p>Command line/X Windows &#8211; Cygwin/OpenSSH</p>
<p>If you&#8217;re happiest working in a UNIX-like command-line environment, and are already familiar with the &#8220;ssh&#8221; and &#8220;scp&#8221; commands, you may want to try Cygwin, (<a href="http://www.cygwin.com/" rel="nofollow">http://www.cygwin.com/</a>). Cygwin is a pretty complete GNU based, (i.e. UNIX-like), environment for Windows.</p>
<p>If you don&#8217;t want/need the full Cygwin UNIX-like environment, OpenSSH for Windows, (<a href="http://sshwindows.sourceforge.net/" rel="nofollow">http://sshwindows.sourceforge.net/</a>), is basically a &#8220;cut-down&#8221; version of Cygwin which includes command line ssh/scp/sftp functionality. It also includes ssh/sftp servers, and it has a fairly straightforward Windows installation program. (Note that OpenSSH for Windows replaces the older, and no longer maintained, Network Simplicity OpenSSH server solution, <a href="http://www.networksimplicity.com/openssh/" rel="nofollow">http://www.networksimplicity.com/openssh/</a>.)</p>
<p>If you do choose Cygwin, and you are comfortable working in the X-Windows environment, in addition to the rich selection of GNU command-line programs, (including sshd, ssh, scp and sftp), there are also Cygwin ports of XFree86, (<a href="http://cygwin.com/xfree/" rel="nofollow">http://cygwin.com/xfree/</a>), KDE, (<a href="http://kde-cygwin.sourceforge.net/" rel="nofollow">http://kde-cygwin.sourceforge.net/</a>), and Gnome, (<a href="http://cygnome.sourceforge.net/" rel="nofollow">http://cygnome.sourceforge.net/</a>). While this is no substitute for dual-booting with a good Linux distro or BSD release, it is handy for doing quick X-Windows work on a server without needing to reboot your Windows machine. I haven&#8217;t used Cygwin&#8217;s X-Windows tools extensively, but I have noticed that the quality and stability seems to be improving with each new release.</p>
<p>Known Hosts</p>
<p>The &#8220;known hosts&#8221; list contains the public keys of host machines that you &#8220;trust&#8221; when using ssh or scp. All implementations of ssh/scp, (including PuTTY, WinSCP and TTSSH), will give warnings if you are connecting to a new machine that is not in the list of known hosts. In addition, they will refuse to connect if the host&#8217;s public key does not match the stored value.</p>
<p>PuTTY stores the list of known hosts in the registry, under the key:</p>
<p>HKEY_CURRENT_USER->Software->SimonTatham->PuTTY->SshHostKeys.</p>
<p>WinSCP also stores the known hosts in the registry, under the key:</p>
<p>HKEY_CURRENT_USER->Software->Martin Prikryl->WinSCP 2->SshHostKeys.</p>
<p>Tera Term Pro stores its list of known hosts in the following file:</p>
<p>C:&#8221;Program Files&#8221;ttermprossh_known_hosts</p>
<p>(assuming the program was installed in the default folder).</p>
<p>If a host machine&#8217;s public key is legitimately changed, (as part of an upgrade for example), you will need to remove the old key from the file, (or the registry in the case of PuTTY or WinSCP), to successfully connect to that host. You should, of course, be 100% sure that the key was genuinely changed, and that this is not a hacker&#8217;s machine masquerading as the host &#8212; this is why these keys are stored and checked in the first place.</p>
<p>Automatic login</p>
<p>With any of the installations covered so far we can only establish an SSH connection provided we supply a password each time. It is possible to automate SSH connections by generating &#8220;passphrase-less&#8221; secure keys and modifying our connection settings to use the new keys. In general, I would only recommend this procedure if you have a specific requirement for automating file transfers, and you clearly understand the security implications.</p>
<p>Keys can be generated on the Windows client-side, using PuTTYGen, or on the server-side, using ssh-keygen. Either program will generate a public key file and a private key file. Different key file combinations can be generated for different SSH protocol versions. If you specify a blank &#8220;passphrase&#8221;, then only the key files will be required to authenticate the connection, thereby allowing unattended connections. (If you include a passphrase you will benefit from a &#8220;doubly-secure&#8221; authentication, based on both the key and the passphrase.)</p>
<p>To use the keys, save the key files in a secure location on the client machine. Then copy the contents of the public key file into the file $HOME/.ssh/authorized_keys, (SSH protocol version 1), or $HOME/.ssh/authorized_keys2, (SSH protocol version 2), on the server machine. Finally, modify the PuTTY, WinSCP or TTSSH session details so that it uses the saved private key file, (making sure it also uses the correct protocol for the specified key). You will find the option to specify the Private Key File under the SSH settings.</p>
<p>Assuming you&#8217;ve got the right files in the right places, and the correct session settings, when you attempt to connect you should find that you can connect without supplying a password or passphrase.</p>
<p>If you are using Cygwin and the command-line ssh/scp versions, you can check the man pages for ssh to determine where you need to save your key files so that the ssh and scp commands will connect without requiring a password/passphrase.</p>
<p>This &#8220;passphrase-less&#8221; approach is reasonably secure, provided access to the client machine is restricted. However, if someone manages to steal your private key file, (which might not be that difficult on most Windows machines), your server account will be fully compromised.</p>
<p>SSH Servers</p>
<p>The following is a brief introduction to SSH server software for Windows.</p>
<p>Cygwin, (<a href="http://www.cygwin.com" rel="nofollow">http://www.cygwin.com</a>), includes a port of the OpenSSH server software. Cygwin is basically a GNU, (UNIX-like), subsystem that runs on 32-bit Windows. To get SSH support for Cygwin, install the &#8220;openssh&#8221; package in addition to the basic Cygwin packages.</p>
<p>If you have any problems installing and configuring Cygwin &#8220;by hand&#8221;, you could also try <a href="http://sshwindows.sourceforge.net/" rel="nofollow">http://sshwindows.sourceforge.net/</a>. This implementation basically wraps Cygwin&#8217;s OpenSSH port in a package that includes a standard Windows installation program.</p>
<p>If you have concerns about running open source secure services, such as OpenSSH or OpenVPN, on Windows, the main alternative is the IPSEC functionality that comes built-in to Windows 2000 servers. IPSEC is fully supported by Microsoft, and Windows-compatible implementations are also available for most *nix. This seems intuitively more secure, since it involves fewer components that are not integral parts of the Windows O/S.</p>
<p>You could also use Windows Terminal Services. This has built-in encryption and has the advantage that it gives you GUI access. You might want to use this in conjunction with IPSEC if you have any concerns about the Terminal Services encryption algorithms.</p>
<p>If you prefer open source solutions, it is still possible to get secure remote GUI access to a Windows server using freely available software. VNC, (<a href="http://www.realvnc.com/" rel="nofollow">http://www.realvnc.com/</a>), provides remote GUI access to Windows machines, and it uses predictable port assignment, so a VNC client session can be port-forwarded over an SSH link provided the Windows server is running an SSH server, (in addition to the VNC server).</p>
<p>I believe it is also possible to port-forward a Terminal Services client session over SSH &#8212; the server appears to use port 3389 by default according to the following Microsoft support article: <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;150543" rel="nofollow">http://support.microsoft.com/default.aspx?scid=kb;en-us;150543</a>.</p>
<p>Old Versions of this Document</p>
<p>The previous version of this document, (which you may find useful if you are using older versions of Windows SSH utilities), is available here: <a href="http://www.jfitz.com/tips/ssh_for_windows_doc_version2.html" rel="nofollow">http://www.jfitz.com/tips/ssh_for_windows_doc_version2.html</a>.</p>
<p>Summary of Links in this Document</p>
<p>OpenSSH Windows page: <a href="http://www.openssh.com/windows.html" rel="nofollow">http://www.openssh.com/windows.html</a><br />
OpenSSH Mac page: <a href="http://www.openssh.com/macos.html" rel="nofollow">http://www.openssh.com/macos.html</a><br />
OpenVPN, an open source, SSL VPN solution: <a href="http://openvpn.net" rel="nofollow">http://openvpn.net</a><br />
PuTTY, pscp and related tools: <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" rel="nofollow">http://www.chiark.greenend.org.uk/~sgtatham/putty/</a><br />
Configuring PuTTY: <a href="http://www.jfitz.com/tips/putty_config.html" rel="nofollow">http://www.jfitz.com/tips/putty_config.html</a><br />
WinSCP: <a href="http://winscp.net/eng/" rel="nofollow">http://winscp.net/eng/</a><br />
Tera Term Pro: <a href="http://hp.vector.co.jp/authors/VA002416/teraterm.html" rel="nofollow">http://hp.vector.co.jp/authors/VA002416/teraterm.html</a><br />
TTSSH, (Tera Term Pro SSH extension): <a href="http://www.zip.com.au/~roca/ttssh.html" rel="nofollow">http://www.zip.com.au/~roca/ttssh.html</a><br />
TTSSH, (mirror site): <a href="http://public.planetmirror.com/pub/ttssh/" rel="nofollow">http://public.planetmirror.com/pub/ttssh/</a><br />
Cygwin: <a href="http://www.cygwin.com/" rel="nofollow">http://www.cygwin.com/</a><br />
XFree86 for Cygwin: <a href="http://cygwin.com/xfree/" rel="nofollow">http://cygwin.com/xfree/</a><br />
KDE for Cygwin: <a href="http://kde-cygwin.sourceforge.net/" rel="nofollow">http://kde-cygwin.sourceforge.net/</a><br />
Gnome for Cygwin: <a href="http://cygnome.sourceforge.net/" rel="nofollow">http://cygnome.sourceforge.net/</a><br />
OpenSSH for Windows: <a href="http://sshwindows.sourceforge.net/" rel="nofollow">http://sshwindows.sourceforge.net/</a><br />
Microsoft&#8217;s Terminal Services Advanced Client FAQs: <a href="http://www.microsoft.com/windows2000/techinfo/administration/terminal/tsacfaq.asp" rel="nofollow">http://www.microsoft.com/windows2000/techinfo/administration/terminal/tsacfaq.asp</a><br />
Microsoft Terminal Services TCP port support article: <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;150543" rel="nofollow">http://support.microsoft.com/default.aspx?scid=kb;en-us;150543</a><br />
VNC &#8211; Remote GUI access for Windows: <a href="http://www.realvnc.com/" rel="nofollow">http://www.realvnc.com/</a> </p>
<p>Revision History</p>
<p>Version 1.0     22 June 1999 &#8211; Initial document<br />
Version 2.0     22 January 2001 &#8211; Revised format, rewrote much of the content<br />
Version 2.1     7 February 2001 &#8211; Added section on ssh servers<br />
Version 2.2     16 November 2001 &#8211; Added notes on PuTTY port forwarding and Cygwin<br />
Version 2.3     3 December 2001 &#8211; Removed link to commercial software<br />
Version 2.4     6 December 2001 &#8211; Added section on WinSCP<br />
Version 2.5     28 January 2002 &#8211; Added link to PuTTY configuration guide<br />
Version 3.0     30 January 2002 &#8211; Rewrote much of the content<br />
Version 3.1     6 March 2002 &#8211; Started Questions and Answers section, (ftp solution)<br />
Version 3.2     27 March 2002 &#8211; Added psftp question/answer<br />
Version 3.3     8 April 2002 &#8211; Added tunneling HTTP question/answer<br />
Version 4.0     23 April 2002 &#8211; Revised format<br />
Version 4.1     11 May 2002 &#8211; Expanded SSH server section, reintroduced Revision History<br />
Version 4.1.1  15 May 2002 &#8211; Added links to Cygwin packages: XFree86, KDE and Gnome<br />
Version 4.1.2  17 July 2003 &#8211; Updated WinSCP links<br />
Version 4.2     25 May 2004 &#8211; Edited and updated links<br />
Version 4.2.1  8 July 2004 &#8211; Mentions PuTTY&#8217;s &#8220;-cleanup&#8221; option<br />
Version 4.2.2  21 March 2005 &#8211; Updated WinSCP links<br />
Version 4.2.3  29 March 2006 &#8211; Added link to OpenVPN</p>
<p>Questions and Answers</p>
<p>Question:<br />
Subject: FTP solution<br />
I have a school PC running Windows NT terminal server on Citrix on Red Hat and Windows NT server 4.0 at home. I have next to no access at school, and can&#8217;t install anything, but I can access HTTP (and SSH via a computer on the edge of the firewall). What I want to do is copy files from home, through the firewall, to and from school. Is this possible using a GUI? If not is it possible another way? How?</p>
<p>Answer:<br />
You can use WinSCP to do exactly what you describe. It uses the SSH protocol to transfer files, and provides an &#8220;Explorer-like&#8221; GUI for dragging/dropping files.</p>
<p>If you can SSH directly to the internal box through the firewall, then WinSCP will work &#8220;as-is&#8221;.</p>
<p>If not, then you need a little bit of port-forwarding to get where you want to go:<br />
Log onto the firewall, (or the machine that is directly accessible via the firewall), using SSH, forwarding an arbitrary local port to port 22 on the internal machine.<br />
When you run WinSCP connect to &#8220;localhost&#8221; on the arbitrary port you selected.<br />
For example:<br />
Say &#8220;schoolfirewall.myschool.edu&#8221; is your school&#8217;s firewall, (or the machine that is visible outside the firewall).<br />
From &#8220;schoolfirewall.myschool.edu&#8221;, you are trying to access a machine called mypc.myschool.edu&#8221;, (which is not visible outside the firewall).<br />
You (randomly) pick port 2200 as the local port to forward.<br />
Create, (and save), a PuTTY session that connects to &#8220;schoolfirewall.myschool.edu&#8221; using SSH, with Local Forwarding of port &#8220;2200&#8243; to &#8220;mypc.myschool.edu:22&#8243;, (specified in the &#8220;SSH Tunnels&#8221; section).<br />
Before running WinSCP, run PuTTY using the saved session, (this will connect to the firewall with port 2200 forwarded &#8211; you must leave PuTTY connected for the duration of the WinSCP session).<br />
Run WinSCP. Connect to &#8220;localhost&#8221; on port 2200. This will in fact be connecting to the SSH server on port 22 of &#8220;mypc.myschool.edu&#8221;.<br />
Provide the appropriate login details for &#8220;mypc.myschool.edu&#8221;, and you should now be able to drag/drop files to/from the internal machine.<br />
Notes:<br />
&#8220;mypc.myschool.edu&#8221;, (the internal server), needs to be running an SSH server. Red Hat should have that installed by default. You can also get a version for Windows if you need it, (see the section on SSH Servers).<br />
If Local Forwarding to &#8220;mypc.myschool.edu:22&#8243; doesn&#8217;t work, try using the internal IP address of the machine instead &#8211; it&#8217;s possible that your client or the firewall can&#8217;t resolve the internal address. For example, if &#8220;mypc.myschool.edu&#8221; is at IP address &#8220;10.0.2.100&#8243;, try forwarding to &#8220;10.0.2.100:22&#8243;.<br />
Question:<br />
Subject: psftp<br />
Why not use psftp, (PuTTY&#8217;s implementation of sftp)?</p>
<p>Answer:<br />
Note: sftp is a &#8220;secure ftp&#8221; program. It works like a regular ftp client, but uses SSH to secure the traffic passing between the client and the server. As of version 3, WinSCP also supports sftp functionality.</p>
<p>I have a couple of niggling concerns with sftp:<br />
sftp requires sftp-server on the server side. Some sites don&#8217;t enable sftp-server, so it can be annoying to become overly dependant on sftp. All the functionality of sftp can be achieved with ssh/scp, without the need for new server-side programs.<br />
sftp adds a new layer of protocol, which introduces new possibilities for security vulnerabilities.<br />
My preference is to stick with tools that are implemented using the &#8220;basic&#8221; SSH protocols, but I accept the point that sftp would also get the job done, and may be easier to work with in many situations.</p>
<p>Question:<br />
Subject: tunneling HTTP<br />
Can I tunnel all my HTTP traffic through an SSH connection to a friend&#8217;s Linux host?</p>
<p>Answer:<br />
Tunneling only works from one host to another (single) host.</p>
<p>To tunnel all HTTP requests, you would need to establish tunnels between your machine and every other machine on the internet. Tunneling HTTP requests to a handful of webservers behind a firewall is feasible, but directly securing all HTTP traffic is not.</p>
<p>However, it is possible to tunnel HTTP requests indirectly:</p>
<p>You could install a HTTP proxy on the Linux machine, (such as squid, <a href="http://www.squid-cache.org/)" rel="nofollow">http://www.squid-cache.org/)</a>, then tunnel communications with the proxy, (port 3128 by default for squid). On the client machine, the HTTP proxy would appear to be running on localhost:3128. It would in fact be talking to squid on port 3128 on the Linux box.</p>
<p>This will secure traffic between your machine and the Linux box. However, the actual HTTP requests from squid to the rest of the Internet are not, (and cannot), be secured, (unless you somehow had SSH or SSL access to every other machine on the Internet). Given this fact, there&#8217;s little to be gained from tunneling HTTP access through a proxy, unless you specifically want to encrypt the data between your machine and the proxy.
<p>
				<span id="reportcomment_results_div_4677"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4677 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4677"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on I got an error downloading file through ftp? by John's Secret Identity</title>
		<link>http://speedftp.com/ftp/i-got-an-error-downloading-file-through-ftp/comment-page-1/#comment-4676</link>
		<dc:creator>John's Secret Identity</dc:creator>
		<pubDate>Fri, 30 Jul 2010 08:46:12 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/i-got-an-error-downloading-file-through-ftp/#comment-4676</guid>
		<description>You&#039;re beta-testing IE7. Report the bug.

http://www.spywareremover.50megs.com/</description>
		<content:encoded><![CDATA[<p>You&#8217;re beta-testing IE7. Report the bug.</p>
<p><a href="http://www.spywareremover.50megs.com/" rel="nofollow">http://www.spywareremover.50megs.com/</a>
<p>
				<span id="reportcomment_results_div_4676"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4676 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4676"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on what is the meaning of UNC &amp; FTP? by harsha</title>
		<link>http://speedftp.com/ftp/what-is-the-meaning-of-unc-ftp/comment-page-1/#comment-4675</link>
		<dc:creator>harsha</dc:creator>
		<pubDate>Fri, 30 Jul 2010 07:45:09 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/what-is-the-meaning-of-unc-ftp/#comment-4675</guid>
		<description>Added UNC (Universal Naming Convention) support. It is no longer necessary to map network drives to local drives in order to upload files from and download files to network folders. The network can be browsed in the top panel of the main window in the same way as in Windows Explorer. 

FTP or file transfer protocol is a commonly used protocol for exchanging files over any network that supports the TCP/IP protocol (such as the Internet or an intranet). There are two computers involved in an FTP transfer: a server and a client. The FTP server, running FTP server software, listens on the network for connection requests from other computers. The client computer, running FTP client software, initiates a connection to the server. Once connected, the client can do a number of file manipulation operations such as uploading files to the server, download files from the server, rename or delete files on the server and so on. Any software company or individual programmer is able to create FTP server or client software because the protocol is an open standard. Virtually every computer platform supports the FTP protocol. This allows any computer connected to a TCP/IP based network to manipulate files on another computer on that network regardless of which operating systems are involved (if the computers permit FTP access). There are many existing FTP client and server programs, and many of these are free

</description>
		<content:encoded><![CDATA[<p>Added UNC (Universal Naming Convention) support. It is no longer necessary to map network drives to local drives in order to upload files from and download files to network folders. The network can be browsed in the top panel of the main window in the same way as in Windows Explorer. </p>
<p>FTP or file transfer protocol is a commonly used protocol for exchanging files over any network that supports the TCP/IP protocol (such as the Internet or an intranet). There are two computers involved in an FTP transfer: a server and a client. The FTP server, running FTP server software, listens on the network for connection requests from other computers. The client computer, running FTP client software, initiates a connection to the server. Once connected, the client can do a number of file manipulation operations such as uploading files to the server, download files from the server, rename or delete files on the server and so on. Any software company or individual programmer is able to create FTP server or client software because the protocol is an open standard. Virtually every computer platform supports the FTP protocol. This allows any computer connected to a TCP/IP based network to manipulate files on another computer on that network regardless of which operating systems are involved (if the computers permit FTP access). There are many existing FTP client and server programs, and many of these are free
<p>
				<span id="reportcomment_results_div_4675"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4675 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4675"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Heavy Load.? by icelotuskun</title>
		<link>http://speedftp.com/ftp/heavy-load/comment-page-1/#comment-4674</link>
		<dc:creator>icelotuskun</dc:creator>
		<pubDate>Fri, 30 Jul 2010 06:45:12 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/heavy-load/#comment-4674</guid>
		<description>dont do it all in one go... brake the upload into parts, so even if you lose connection you will get it all up eventualy...
or learn a scipt language such as php or asp to reduce an overly massive staic wesite (54000 pages?!?!?) as there is like no reason to have a site that big, that big.

http://www.spywareremover.50megs.com/</description>
		<content:encoded><![CDATA[<p>dont do it all in one go&#8230; brake the upload into parts, so even if you lose connection you will get it all up eventualy&#8230;<br />
or learn a scipt language such as php or asp to reduce an overly massive staic wesite (54000 pages?!?!?) as there is like no reason to have a site that big, that big.</p>
<p><a href="http://www.spywareremover.50megs.com/" rel="nofollow">http://www.spywareremover.50megs.com/</a>
<p>
				<span id="reportcomment_results_div_4674"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4674 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4674"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on FTP Problem? by inhisname155</title>
		<link>http://speedftp.com/ftp/ftp-problem/comment-page-1/#comment-4673</link>
		<dc:creator>inhisname155</dc:creator>
		<pubDate>Fri, 30 Jul 2010 05:52:30 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/ftp-problem/#comment-4673</guid>
		<description>what all this is saying in English is that your user ID or password is not recognized. its interesting you can not access it from your personal PC. it makes me think the files for the site are on your friends PC not yours. is that true??? if so copy them to the same directory on your PC. good luck

it tech</description>
		<content:encoded><![CDATA[<p>what all this is saying in English is that your user ID or password is not recognized. its interesting you can not access it from your personal PC. it makes me think the files for the site are on your friends PC not yours. is that true??? if so copy them to the same directory on your PC. good luck</p>
<p>it tech
<p>
				<span id="reportcomment_results_div_4673"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4673 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4673"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on FTP problem again? by eclipsed2908</title>
		<link>http://speedftp.com/ftp/ftp-problem-again/comment-page-1/#comment-4672</link>
		<dc:creator>eclipsed2908</dc:creator>
		<pubDate>Fri, 30 Jul 2010 04:49:57 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/ftp-problem-again/#comment-4672</guid>
		<description>You might need to set up the ftp program to automatically over write files on the remote server. Type the direct path to one of your other pages, not the home page into your browser to see if it appears. 

MAYBE TRY : Open Internet Explorer and visit ftp://your-domain.com (replacing http:// with ftp://)

Put in your username and password provided by your company and take a good look around. You might find a temporary index.html put there by the hosting company as the temporary home page. If you do, that&#039;s where to put the files. 

Using Internet explorer as an ftp client allows you to click and drag the files to your web space also for ease, prompting you normally if you want to over write existing files.

If all else fails, contact the hosting company. If they cant&#039; answer a small question like that, they&#039;re not worth paying money to in the future.

</description>
		<content:encoded><![CDATA[<p>You might need to set up the ftp program to automatically over write files on the remote server. Type the direct path to one of your other pages, not the home page into your browser to see if it appears. </p>
<p>MAYBE TRY : Open Internet Explorer and visit <a href="ftp://your-domain.com" rel="nofollow">ftp://your-domain.com</a> (replacing http:// with <a href="ftp://)" rel="nofollow">ftp://)</a></p>
<p>Put in your username and password provided by your company and take a good look around. You might find a temporary index.html put there by the hosting company as the temporary home page. If you do, that&#8217;s where to put the files. </p>
<p>Using Internet explorer as an ftp client allows you to click and drag the files to your web space also for ease, prompting you normally if you want to over write existing files.</p>
<p>If all else fails, contact the hosting company. If they cant&#8217; answer a small question like that, they&#8217;re not worth paying money to in the future.
<p>
				<span id="reportcomment_results_div_4672"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4672 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4672"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Anybody Know Any Free FTP Sites? by st3curl</title>
		<link>http://speedftp.com/ftp/anybody-know-any-free-ftp-sites/comment-page-1/#comment-4671</link>
		<dc:creator>st3curl</dc:creator>
		<pubDate>Fri, 30 Jul 2010 03:47:31 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/anybody-know-any-free-ftp-sites/#comment-4671</guid>
		<description>Xdrive.com is offering 5 gigs for free. Not a true FTP, but it allows you to upload up to 5 gigs to free online storage. You can give anyone you want access to download from the site as well.

http://xdrive.com/


Another is AMD Live! Media Vault, offers 25 gigs of free online storage.
http://amd.streamload.com/Brands/AMD/home/signup_amd.aspx


You can also use your home computer as an FTP site.  Use a Dnynamic DNS to create a virtual static IP, then use a free FTP server program like zFTP Server Suite. 


Now you are hosting your own mini FTP. As long as your computer is logged in to the internet, anyone who has the password, or if you dont use a password, ANYONE can upload or download to a portion of your hard drive that you dedicate.


Good luck!

http://www.spywareremover.50megs.com/</description>
		<content:encoded><![CDATA[<p>Xdrive.com is offering 5 gigs for free. Not a true FTP, but it allows you to upload up to 5 gigs to free online storage. You can give anyone you want access to download from the site as well.</p>
<p><a href="http://xdrive.com/" rel="nofollow">http://xdrive.com/</a></p>
<p>Another is AMD Live! Media Vault, offers 25 gigs of free online storage.<br />
<a href="http://amd.streamload.com/Brands/AMD/home/signup_amd.aspx" rel="nofollow">http://amd.streamload.com/Brands/AMD/home/signup_amd.aspx</a></p>
<p>You can also use your home computer as an FTP site.  Use a Dnynamic DNS to create a virtual static IP, then use a free FTP server program like zFTP Server Suite. </p>
<p>Now you are hosting your own mini FTP. As long as your computer is logged in to the internet, anyone who has the password, or if you dont use a password, ANYONE can upload or download to a portion of your hard drive that you dedicate.</p>
<p>Good luck!</p>
<p><a href="http://www.spywareremover.50megs.com/" rel="nofollow">http://www.spywareremover.50megs.com/</a>
<p>
				<span id="reportcomment_results_div_4671"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4671 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4671"></span>
			</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on free webhosting with free FTP? by Somebody</title>
		<link>http://speedftp.com/ftp/free-webhosting-with-free-ftp/comment-page-1/#comment-4670</link>
		<dc:creator>Somebody</dc:creator>
		<pubDate>Fri, 30 Jul 2010 02:49:57 +0000</pubDate>
		<guid isPermaLink="false">http://speedftp.com/ftp/free-webhosting-with-free-ftp/#comment-4670</guid>
		<description>I doubt you&#039;re going to find it completely free anywhere good. I would suggest just paying a few bucks a month to somewhere like monsterhost.com or something if you want you website to be good and accesible. Otherwise your going to get crappy transfer.

http://www.symantec.com/home_homeoffice/security_response/index.jsp</description>
		<content:encoded><![CDATA[<p>I doubt you&#8217;re going to find it completely free anywhere good. I would suggest just paying a few bucks a month to somewhere like monsterhost.com or something if you want you website to be good and accesible. Otherwise your going to get crappy transfer.</p>
<p><a href="http://www.symantec.com/home_homeoffice/security_response/index.jsp" rel="nofollow">http://www.symantec.com/home_homeoffice/security_response/index.jsp</a>
<p>
				<span id="reportcomment_results_div_4670"><a href="javascript:void(0);" onclick="reportComment_AddTextArea( 4670 );" title="Report this comment" rel="nofollow">Report this comment</a></span><br />
				<span id="reportcomment_comment_div_4670"></span>
			</p>
]]></content:encoded>
	</item>
</channel>
</rss>
