From my experience these problems all have to do with a proper ssh connection. Here is my recipe to handle the situation:
I will call the computer running the kernel server and the computer running the frontend connecting to the remote kernel client.
On the server side check that "Remote Login" is activated in Settings->Sharing. You should then be able to open terminal and connect to the server from your client using ssh like this:
ssh username@computer
where computer
is either the computer name of the server in your network or the IP-address of the server. You should be asked a password for the user you specified via username
. After successful login you should be able to run the MathKernel on the server via
/Applications/Mathematica.app/Contents/MacOS/MathKernel
If this gives you a command line mathematica session on the server we are set for the next step: Make a connection to the remote kernel from within a mathematica notebook on the client.
To do so open Evaluate->Kernel Configuration Options in Mathematica on the client machine. Choose Add
to add a new remote kernel. In the appearing Options Dialog choose Advanced Options
. Leave Arguments to MLOpen
as is and specify a custom Launch command
:
ssh username@computer /Applications/Mathematica.app/Contents/MacOS/MathKernel -mathlink -LinkMode Connect -LinkProtocol TCPIP -LinkName "`linkname`" -LinkHost `ipaddress`
As you can see I did not use the WolframSSH
implementation but the standard ssh
shipping with MacOS X.
Now the Kernel should be setup properly. Switch the Kernel for the notebook to the newly created remote kernel and run a command. If all works as expected you should get an error message in the messages window telling you "ssh_askpass: exec(/usr/libexec/ssh-askpass): No such file or directory".
This is due to the fact that this file does not exist on your client and MacOS X is configured to not showing any password dialog by default. This means that you need a proper ssh-askpass script (ssh-askpass is a shell script) that allows you to show the password dialog. To get one you should visit: proper ssh-askpass. You need to install the script on your client, just follow the installation instructions on the website.
That's it, you should now be able to connect to the remote kernel in mathematica, i.e. when executing a command a password dialog should show up and after the password has been entered the command should be executed on the server running the remote kernel.
p.s.: Instead of using the password dialog and setting up a proper ssh-askpass script you should also be able to establish a ssh-connection by setting up proper ssh keys on both machines and specify this key in the advanced options
under Launch commands
.