misho1kr/skype-client
Skype is a popular IM program that provides secure (as secure as it can get in today's world) chat, phone and video communication. It offers free and/or low-cost calls between computers and regular phones, and it is available on Mac, Windows and Lunux.
Running Skype on Lunux a bit annoying because the native version is significantly behind the Mac and Windows versions in terms of features. But the worse part is that Skype offers only 32-bit version of the binaries. So on most Linux machines, which are predominanlty 64-bit, one has to install a significant number of 32-bit supporting libraries and tools just for the privilege to install the Skype client.
This project is an attempt to lessen the pain of running the Skype client on Linux by wrapping it in Docker container. Everything required to run Skype is installed inside the container while the host OS is not burdened with unnecessary packages.
The method implement here to run Skype client in Docker container is just an experiment. There may be better ways to achive the same goal. At present video and audio are not enabled, only IM with text messages.
This Docker container runs SSH server that is used to create secure channel between the client and server, and to allow passwordless login with RSA key.
Logins to the Docker container to start the Skype client are possible only if the caller has its public RSA key uploaded to the Docker server. Here are two different ways to get this done.
If you are building Docker image using the Dockefile in this folder, first copy your public RSA key to a file named skype-client-key.pub, then run the docker build command. The publuc key will be "baked" into the image.
If you have downloaded the trusted Docker image first you have to acquire the private RSA key that was preloaded into the image. Download the file skype-client-key from this GitHub repository and use it replace the public RSA key in the Docker container with your own key.
$ docker run -d -t -p 2022:22 --name=skype-client --hostname=skype-client misho1kr/skype-client
c9552724200ce50e80e57820ce36e850eacfc2ae86e295a24a96591b9443b675
$ wget https://raw2.github.com/misho-kr/docker-appliances/master/skype-client/secure/skype-client-key
...
2014-04-15 02:31:13 (18.3 MB/s) - ‘vnc-server-key’ saved [1679/1679]
$ scp -P 2022 -i skype-client-key $HOME/.ssh/id_rsa.pub root@localhost:.ssh/authorized_keys
id_rsa.pub 100% 228 0.2KB/s 00:00
$ rm skype-client-key
$ ssh -p 2022 -X root@localhost skype
The above procedures assumes the public RSA key is in your home directory. If that is not the case and instead ssh agnet forwarding is used then ssh-copy-id command can install your public key. But it requires a little bit of help to enable it to login to the container, and it has the effect that it adds your public key but it _does not replace the re-loaded key.
$ ssh-add skype-client-key Identity added: skype-client-key (skype-client-key) $ ssh-copy-id -p 2022 root@localhost /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '2022' 'root@localhost'" and check to make sure that only the key(s) you wanted were added.
$ ssh-add -d skype-client-key Identity removed: skype-client-key ( RSA key for passwordless login to Skype client) $ ssh -p 2022 -X root@localhost skype
To start the Skype client execute these two simple steps:
It takes a bit of typing but that can be alleviated with aliases that cab be placed in HOME/.bashrc.
$ alias "skype-run=docker run -d -t -p 2022:22 --name=skype-client --hostname=skype-client misho1kr/skype-client"
$ alias "skype-stop=docker stop skype-client"
$ alias "skype-delete=docker rm skype-client"
$ alias "skype=ssh -p 2022 -X root@localhost skype"
$
$ skype-run && skype
$ 9f06514c19a23fa85201203c893d4dac1affa15dd98b4b513d54b898fb6bfc7b
docker pull misho1kr/skype-client