On Ubuntu 14 machine
---

Setup SSH files
----

- `mkdir ~/.ssh`
- `chmod 700 ~/.ssh`
- `touch ~/.ssh/authorized_keys`
- `chmod 700 ~/.ssh/authorized_keys`
- `touch ~/.ssh/known_hosts`
- `chmod 700 ~/.ssh/known_hosts`

Setup keys
----
- `ssh-keygen -t rsa -b 4096 -C "your_email@example.com"`
- `eval $(ssh-agent)`
- `ssh-add ~/.ssh/id_rsa`
- `sudo service ssh restart`

Backup OpenSSH configuration
----

- `cp /etc/ssh/ssh_config /etc/ssh/ssh_config.factory`
- `cp /etc/ssh/sshd_config /etc/shs/sshd_config.factory`

Modify the following in the file `~/.ssh/config` with contents

```
ForwardAgent yes
```

Modify the following in the file `/etc/ssh/sshd_config` with contents

```
AuthorizedKeysFile     %h/.ssh/authorized_keys
ChallengeResponseAuthentication no
PasswordAuthentication no
AllowTcpForwarding yes
UsePAM no
```

Modify the following in the file `/etc/ssh/ssh_config` with contents

```
Host *
    # ...
    ForwardAgent yes
    ForwardX11 yes
    PasswordAuthentication no
    PubkeyAuthentication yes
```

On Host Mac OS X machine, make remote machines identity authorized

- `scp reece@192.168.218:/home/reece/.ssh/id_rsa.pub ~/.ssh/id_rsa_ubuntu14.pub`
- `cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys_backup`
- `cat ~/.ssh/id_rsa_ubuntu14.pub >> ~/.ssh/authorized_keys`

On Host Mac OS X, copy identity to remote machine to authorize identity

- `scp ~/.ssh/id_rsa.pub reece@192.168.218:/home/reece/.ssh/id_rsa_macpro.pub`

On Ubuntu 14

- `cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys_backup`
- `cat ~/.ssh/id_rsa_macpro.pub >> ~/.ssh/authorized_keys`

Use the `-vvv` option when ssh'ing into the remote machine to check output if authentication is rejected

Sources
---

- https://help.ubuntu.com/lts/serverguide/openssh-server.html
- https://help.ubuntu.com/community/SSH/OpenSSH/Keys
- https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#platform-linux