Solusi Problem: Akses Github jika Port 22 Diblok oleh Internet Provider
Bismillahirrahmanirrahim.
Buat yang punya problem akses ke port 22 diblok oleh internet provider, mungkin akan dapat kesulitan seperti berikut:
- Akses VPS dengan SSH (port 22: Connection timed out)
- Pull dan push ke Github (port 22: Connection timed out)
- Pull dan push ke Bitbucket (port 22: Connection timed out)
- Hal-hal lain yang berkaitan dengan SSH dan SCP (mungkin Gitlab juga)
Problem
Sebagai contoh, kalau port 22 diblok oleh internet provider, waktu kita mau pull changes di github, kita dapat pesan ini:
$ git pull origin master
# (loading lama...)
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Hal serupa ketika kita mau akses VPS via SSH (dengan default port 22):
$ ssh username@domain.co.id
# (loading lama...)
ssh: connect to host domain.co.id port 22: Connection timed out
Solusi
1. Untuk Github dan Bitbucket
Untuk source code hosting seperti github dan bitbucket, mereka menyediakan port yang berbeda untuk kebutuhan push dan pull. Berikut referensinya:
- Di github: Enabling SSH connections over HTTPS.
- Di bitbucket: Jira BCLOUD-9519 - port 22: Connection refused.
Dari referensi di atas, untuk sistem operasi Ubuntu dan turunannya kita bisa set SSH config dengan cara berikut:
$ vim ~/.ssh/config # boleh pakai nano
# Tambah config di bawah
Host bitbucket.org
Hostname altssh.bitbucket.org
Port 443
Host github.com
Hostname ssh.github.com
Port 443
User git
# Simpan dan exit
Kita coba push ke Github, akan muncul yang seperti ini:
$ git push origin main
The authenticity of host '[ssh.github.com]:443 ([18.138.xxx.xxx]:443)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTx.....
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[ssh.github.com]:443,[18.138.xxx.xxx]:443' (RSA) to the list of known hosts.
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 8 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 599 bytes | 299.00 KiB/s, done.
Total 6 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), completed with 4 local objects.
To github.com:username/nama-repo.git
b21a15f..3b7510e main -> main
Artinya sudah sukses. Untuk Bitbucket lebih kurang sama.
2. Untuk VPS
Di VPS-nya kita mesti ubah default port SSHnya, dari 22
menjadi (misal) 49152
. Caranya coba cek artikel dari web om Musa Amin:
Link: Cara Mengubah Nomor Port SSH Server (musaamin.web.id)
Di artikel itu diajari juga cara akses SSH dengan beda port. Tapi kalau mau ringkas, kita bisa buat ssh config seperti di atas untuk VPS:
$ vim ~/.ssh/config # boleh pakai nano
# Tambah config di bawah
Host domain.co.id
HostName 161.xxx.xxx.31 # IP address atau nama domain
Port 49152 # Sesuai port baru di VPS
IdentityFile /home/username/.ssh/id_rsa # Ini path private key localhost kita
IdentitiesOnly yes
# Simpan dan exit
Dari situ bisa kita coba ssh seperti biasa (tanpa mengisi custom port), mestinya sudah aman.
Baik teman-teman, itu saja tips untuk yang mengalami problem akses ke port 22 diblok oleh internet provider terkait dengan akses ke VPS atau Github dan Bitbucket. Terima kasih sudah berkenan membaca. Semoga bermanfaat.