SSH, Rsync, and GitHub over 443
This is a topic I keep searching for every so often, thanks to proxy server misconfigurations. If one needs to push to git or rsync files over a port other than 22, it is possible to do so with a couple of commands.
SSH over 443
We can temporarily set a cloud server to serve SSH over 443. This would allow us to SSH or Rsync over that port.
# Edit sshd config to use port 443 (replace `Port 22` with `Port 443`) sudo vim /etc/ssh/sshd_config #Port 22 Port 443 # Stop apache since it listens on 443 sudo systemctl stop httpd.service # Restart sshd sudo systemctl restart sshd
Now SSH into that server from your local machine:
ssh -p 443 email@example.com
Once you’re done, revert the settings:
sudo systemctl restart sshd sudo systemctl start httpd.service
Rsync over SSH
Once you’ve setup your SSH server to serve over 443, you can rsync with the following command:
rsync -v -e "ssh -p443" file.txt firstname.lastname@example.org:/mnt/destination/
GitHub over SSH
GitHub has a brief write up on how to push/pull over port 443.
# Test if you're able to SSH over 443 (you will get "Hi ...!", if successful) ssh -T -p 443 email@example.com # If successful, add the follwoing to ~/.ssh/config Host github.com Hostname ssh.github.com Port 443 # Test if new settings work ssh -T firstname.lastname@example.org