The motivation is: ssh to remote computer without port forwading, dynamic DNS and so on, the only thing needed is that the remote is connected to the Internet.
- On remote get tmate, put it in /usr/local/bin (apt version as of 18.04LTS is too old):
curl -L https://github.com/tmate-io/tmate/releases/download/2.4.0/tmate-2.4.0-static-linux-amd64.tar.xz|tar xJv
sudo mv tmate-2.4.0-static-linux-amd/tmate /usr/local/bin
-
Put public keys in ~/.ssh/authorized_keys
-
Get API key from https://tmate.io/ (or host your own server)
-
Create ~/.tmate.conf
set tmate-api-key "<YOUR_API_KEY>"
set tmate-session-name "<SESSION_NAME>"
set tmate-authorized-keys "~/.ssh/authorized_keys"
Session name is chosen by you
- Create /etc/systemd/system/tmate.service
[Install]
WantedBy=multi-user.target
[Unit]
Description=Tmate-SSH
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
Restart=always
User=root
ExecStart=/usr/local/bin/tmate -F
probably you want to change User
- Install tmate as service
systemctl daemon-reload
systemctl start tmate
systemctl enable tmate
- You can reboot and ssh from any computer with private key:
ssh <REGISTRED_USERNAME>/<SESSION_NAME>@lon1.tmate.io
Yes! @iskolbin this is what I did.