Nafies Luthfi

Life will always feel wonderful if we always think positively.

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:

  1. Akses VPS dengan SSH (port 22: Connection timed out)
  2. Pull dan push ke Github (port 22: Connection timed out)
  3. Pull dan push ke Bitbucket (port 22: Connection timed out)
  4. 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:

  1. Di github: Enabling SSH connections over HTTPS.
  2. 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.