Honestly, this isn't a problem I'd even attempt to solve. The specs here are only a little better than my very first Linux machine:
- 486/33DX
- 32MB RAM
- 1.2GB disk
- 1.2.21 kernel
Obviously your CPU will be vastly better, but this is a problem I haven't had to solve in 15 years.
Can it be done? Very probably, if you know exactly what you're doing and aren't afraid of a lot of hard work. Just the boot directory and modules for my current linux laptop come to 160MB these days (in 1995, and 1.2.21, my monolithic kernel was about 5MB), which doesn't leave a lot of room for all the system libraries and basic userspace tools. Something as tiny as 661MB is going to require a truly amazing amount of hand tuning, since you're going to need only the libraries and kernel modules you actually need. Packages designed for general usage (Debian, Arch) will more than likely have bits you're not going to use and therefore can't afford to add. You definitely don't have enough swap-space available to work around the RAM shortage.
We're talking about as much work as rolling your own distro.
- Compile your own kernel, selecting only the modules you need since you really need the space savings
- Compile your services with exactly the options and modules you need
- Make sure any 'optimize for low memory' options are turned on, if available
- Go through the packages for Arch/Debian and figure out which basic-linux packages you need, and install them.
- Copy/Compile libraries needed for service-functioning
- Keep trying until it works right.
Anything that says 'compile' up there will have to be done on a second system with more reasonable specs, since compiling anything much more complex than 'hello world' probably can't be done with these minimal specs. Once compiled, copy them to the above. Your best bet is to mount that 1.6GB drive in the faster/better machine and build it there before installing in the low-RAM machine.
Because of the very high amount of hand tweaking needed for this kind of build, we need to know exactly what you're trying to accomplish. That would mean telling us which services you plan to be using, including all of the modules (if any), as well as expected usage patterns. This is both way too generalized (this question) and way too specific (the version of this question that includes the needed details) for what makes good questions here.