Archive for the 'Mac OSX' Category

Connect to Windows Samba share on Mac OSX with SSH

After some googling around i found this post. It's a very clear howto on connecting to a Windows Samba share on your Mac OSX with SSH. For example your NAS at home from any other location.
I copied it to my own site to be sure it stays on the web.

All credits go to the author.

Chances are if you are seeing this, you've tried quite a bit but it hasn't worked. Look no further. If you are seeing this and haven't been researching it, then this should still be enough info to get a good start.

First, here's the point: Using windows file sharing (Samba/SMB) is a good way to access your files across your home network, but don't even think about trying it over the internet. In order to access SMB shares across the internet you're going to need to get creative. A method which works reasonably well is using a zero-configuration VPN program such as Hamachi, Remobo, Wippen, etc. to create a virtual lan connecion, thus fooling your computer into connecting like you were on the same lan. That works, but in my experience it isn't very reliable, it has limitations, it has overhead, and it means you have to have that ZCVPN client on both ends. So here's my solution, skip the program, jump straight to the solution. If you use an SSH tunnel to connect to your computer, you can access your SMB shares, you can use VNC to view your screen, or do just about anything that uses a port on your host computer. The best part about it is, once you have it up and running, it's really simple to use!

Note: This post will assume that your "server" machine is running windows and your "client" machine is running Mac OS X Leopard.

Here's how to do it:

1. Enable file sharing on your host computer (I'm going to assume this is running Windows). This will allow your files to be shared across your local network. If you don't know how to do that, there's a very good guide Here.

2. (Optional) Disable simple file sharing and edit the permissions on your shares so that the shares are password protected. You only need to do this if you don't want just anyone on your local network to be able to access your files. (Google it)

3. Install an SSH server on your host computer, I'd recommend freeSSHd. This will allow your to create a secure connection between your computers. I'd suggest freeSSHd because it's free and much easier to use than many of the alternatives (OpenSSH/Cygwin).

4. On the SSH tab in the freeSSHd settings, change the port to whatever port you want, I'll be using 12345 in my examples. I'd recommend something in between 10000 and 50000 so that a network scanner is less likely to pick up the port.

5. On the Users tab in freeSSHd, add a user with the username and password of your choice, set your password as "Password stored as SH1 hash".

6. On the Tunneling tab in freeSSHd, enable local and remote port forwarding.

7. Test your SSH server to make sure you can connect to it using a computer on the same network as the SSH server. You will need the local IP of the SSH server for this step you can find it using This guide.

To test it from your mac machine:

Open the Terminal (Applications/Utilities/Terminal)
Use the command ssh -p port username@hostip (Example: ssh -p 12345 lococobra@192.168.0.2)

8. Enable port-forwarding on your router to your SSH server at the port you used - Follow one of the guides for your router Here but use the port for SSH (12345)

9. (Optional) Set up an automatic DNS server for your host computer, you can set that up Here for free. I'd really suggest you do this, its very useful! Once you have that set up, install the No-IP Dynamic Update Client so that your DNS always matches your dynamic IP.

10. Test your SSH connection via the port forward. This is almost exactly the same as before, except instead of using the IP you got from ipconfig, use your global IP (or the DNS you set up in step 9). You can find your global IP Here.
Example: ssh -p 12345 lococobra@myDNS.hopto.org

Now that we have all that set up, we're almost done. What we're going to do is connect via SSH and forward the SMB ports from our host computer to our client. This will allow you to access your shares remotely. It works because your ssh/smb server will think that it's directly connected with your client computer, when in fact the connection is all handled through SSH. The tricky part is, OS X Leopard will not allow you to do this. If you forward the SMB ports from the server to client computer, then the client will think that it's connecting to itself, and so Leopard will deny the connect. In order to defeat this we're going to have to work some magic.

11. Set up an alias for your loopback connection (localhost/127.0.0.1) on your Mac. This will fool your computer into thinking it's connecting to an external IP. This command needs admin privileges, so you have to use sudo. The command is:

sudo ifconfig lo0 127.0.0.2 alias up

This will create a temporary alias for your loopback connection which will stay active until the computer is restarted.

12. Edit the all users configuration file for your SSH settings so that you can connect quickly without setting it up each time.

Open the Terminal and run sudo pico /etc/ssh_config
Enter the following text above the line that says " #Host *", change the user and port to the ones you have used in your SSH configuration.

Host AliasForHost
HostName hostip
Port 12345
User YourUserName
ServerAliveInterval 200
ServerAliveCountMax 3
LocalForward 127.0.0.2:139 127.0.0.1:139
LocalForward 127.0.0.2:445 127.0.0.1:445

Keep in mind that you can add any number of ports to this list. For example, if you want to connect to VNC, add 5900 to that list. Then to use VNC, connect to 127.0.0.2:5900.

Hit control + x, Y, and enter to save the file. Since we're saving it as a dotfile (there's a dot at the beginning) you won't be able to see it. If you need to edit it again, you can do it through pico the same way.

13. Initiate the SSH connection with your host computer using the host alias we set up before.

sudo ssh AliasForHost

14. Connect to the Samba share. Open a Finder window and hit command+ k to open a Connect to Server windows. For the server address, use:

smb://127.0.0.2

Now click Connect, and if everything went well you should be prompted with a window to enter your Login credentials for the server machine!

Wow, that was complicated, but at this point it doesn't need to be. Here's a little AppleScript I came up with to automate the connection. (Don't worry about running the ifconfig over and over, it won't hurt anything)

set Command to "sudo ifconfig lo0 127.0.0.2 alias up; sudo ssh AliasForHost"

tell application "Terminal"
if (count of windows) is 0 then
do script Command
else
do script Command in window 1
end if
activate
end tell

You can save that script as an application using the AppleScript Script Editor and run it to automatically run those commands.

I know for most people that post was probably really confusing but I tried! If you need help please comment or something. I'll get back to you.

Edit: Take a look at Fredrik's script in the first comment for an even more automated solution for connecting and mounting.

Edit2: I found a much more efficient way to actually initiate the connection using a host alias, take a look at the part about the ssh_config file

No Comments »

Must have Mac OSX Apps: RCDefaultApp

RCDefaultApp allows to set the default applications used for various URL schemes, file extensions, file types, MIME types, and Uniform Type Identifiers from within a very easy interface. You can manage all your default settings from a single point. A handy feature is the ability to be able to override the default application for new files. For example, if you save a PSD with photoshop but you for example always want to view PSD's with Xee, you will be able to configure this.

The application is freeware.
Go to the homepage of the author here:
http://www.rubicode.com/Software/RCDefaultApp/

No Comments »

Must have Mac OSX Apps: Xee

Xee is the ultimate replacement for the zero-feature image viewer that comes with your mac.

The features of xee are:

  • Display a large number of image formats - any format QuickTime or Preview
    can open, plus several more, including PCX, Maya IFF and Amiga IFF-ILBM.
  • Easy browse through folders of images - open any file in a
    folder and use the toolbar, keyboard shortcuts or mouse wheel to
    view the other images in the same folder.
  • Browse image inside archives, using the uncompression engine from
    The Unarchiver. It can read almost every format
    The Unarchiver can, which include Zip, Rar, 7-Zip, Lzh, ISO and
    StuffIt. It also supports the CBZ and CBR formats, which are just
    renamed Zip and Rar files, respectively.
  • Effortlessly copy, move, rename and delete of images while viewing.
  • Losslessy rotate and crop JPEG images. This lets you edit your
    digital photographs without losing quality by re-compressing them like
    most other editors do.
  • View more EXIF data for JPEG files than Preview, and also other kinds of
    metadata, like XMP or IPTC. It can even try to identify what program or
    camera created a JPEG file by analyzing its quantization tables.
  • Extract bitmap images from inside PDF and SWF files. Many PDF files contain
    scanned pages in bitmap form, and Xee can read these and show them as
    bitmap image, and even save them. The same goes for bitmap images inside
    SWF files.
  • View images in full-screen.

Get it here: http://wakaba.c3.cx/s/apps/xee

1 Comment »

Must have Mac OSX App: TotalFinder

The Finder is the worst thing on the mac if you ask me, there are several missing features for example the abilty tho show folders before files, show hidden files, no creation of those irritating .DS_Store files etc.

TotalFinder, from BinaryAge, does everything i miss in the default mac finder. A few features i like the most are:

  • Tabbed browsing
  • Side-by-side mode, 2 finders in one window
  • Show hidden/system files
  • Folders on top

Go to the TotalFinder website

No Comments »

The best editor on mac osx #textmate create your own commands using PHP

With the bundle editor it's possible to create your own commands. And the best thing ever is you can use PHP in your commands.

Now i can do virtually anything, advanced text conversions, even with database lookups!

Textmate PHP command

No Comments »

SVN and Mac OSX hidden .DS_Store ._ .AppleDouble files

If you work on a mac (as i do) your directories get poluted with .DS_Store, ._ and .AppleDoubel files. Apple (this is THE missing Finder feature!) has no option to turn this crap off.
Now when you use svn, you will also import all these useless files.

Thank god there is a option in svn to globally ignore specific files.
Just edit the file:

~/subversion/config

Find the line global-ignores, uncomment it and make it something like this:

global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store .AppleDouble ._*

Whoot!

No Comments »

Create new file option in OSX

In my opinion this is THE missing finder option... The ability to create a new file.
This finder plugin has exaclty this functionality: NuFile

No Comments »

Screenshot howto on MacOS X

Keep forgetting this commands. Copy/pasted this from daantje.nl.

* Command-Shift-3:
Take a screenshot of the screen, and save it as a file on the desktop
* Command-Shift-4, then select an area:
Take a screenshot of an area and save it as a file on the desktop
* Command-Shift-4, then space, then click a window:
Take a screenshot of a window and save it as a file on the desktop
* Command-Control-Shift-3:
Take a screenshot of the screen, and save it to the clipboard
* Command-Control-Shift-4, then select an area:
Take a screenshot of an area and save it to the clipboard
* Command-Control-Shift-4, then space, then click a window:
Take a screenshot of a window and save it to the clipboard

No Comments »

How to make a shortcut in OSX

Because i keep forgetting this crap:

Press Shift-Alt-Apple then drag the folder to somewhere to create a shortcut.
This only works on the SAME disk/partition.

No Comments »

Stop OSX from creating irritating dot files on network drives

To stop Max OSX from creating .DS_Store files on network drives (and prevent pissing of your co-workers) just type in this on a terminal and reboot:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

4 Comments »

Next »