Problem
Bir çok kurumsal şirket, güvenlik duvarlarıyla kurum içindeki bilgisayarlara dışarıdan erişimi kısıtlar. Örneğin, şirket bilgisayarı dışarıdaki sunuculara HTTP, FTP bağlantıları yapabilir ama eğer siz şirketteki bilgisayarınıza ofis dışından erişemezsiniz. Bu sorunun bulunduğu bir ağı şu şekilde şematize edebiliriz.

Çözüm
Bu sorunu çözmek için bazı şirketler VPN kullanmaktadır ama her şirket bunu sağlamadığı için burada reverse(ters) ssh ile ofisteki bilgisayarınıza nasıl erişebileceğiniz anlatacağım.
Teorikte bu problemi çözmek için ilk önce ofis bilgisayarından ev bilgisayarına ssh bağlantısı kurulur. Bu ssh bağlantısı üzerinden ev bilgisayarından ofis bilgisayarına yeni bir bağlantı kurulur. Yeni kurulan bağlantı mevcut ssh bağlantısı üzerinden olacağı için, firewall bunu içeri gelen yeni bir bağlantı olarak algılamayacaktır.

Örnek 1
Ev bilgisayarınıza ssh sunucusu kurulu olduğunu ve bu ssh sunucusunun dışıarıdan erişilebilir olduğunu varsayıyorum. Ip bilgileri şu şekilde olsun;
Ev IP: 88.xx.xx.xx
Ofis IP: 89.xx.xx.xx
Ofis Bilgisayarınızdan ev bilgisayarınıza ssh bağlantısı kurmanız gerekiyor.
ssh -R 2210:localhost:22 88.xx.xx.xx
-R 2210:localhost:22 parametresi ile bağlandığınız makinanın 2210 portu sizin şu an kullandığınız makinanın(localhost) 22 portuna yönlendirilir. Bu şekilde, ev bilgisayarınızda 2210 numaralı bir port açılacak ve siz evden 2210 portuna ssh ile bağlanmaya çalıştığınızda ofisteki bilgisayarınızın ssh sunucusuna bağlanmış olacaksınız.
Aşağıdaki komutu ev bilgisayarınızda çalıştırmanız gerekiyor.
ssh -p 2210 localhost
Bu komut ile ofisinizdeki ssh sunucusuna bağlanacaksınız.
Örneğin ofis bilgisayarınızda bir vnc sunucusu kurulu ve siz bu vnc sunucusuna erişerek ofis bilgisayarınızı yönetmek istiyorsunuz.
Bu durumda ofis bilgisayarında şu komutu çalıştırmanız gerekiyor.
ssh -R 5901:localhost:5900 88.xx.xx.xx
Ev bilgisayarınızda ofis sunucuza erişmek için artık vnc istemcisini kullanabilirsiniz.
vncviewer localhost:1
Örnek 2Örnek 1'de verilen örneklere göre, aradığınız ofis arkadaşlarınızdan birinin sizin makinanıza giriş yapıp ev bilgisayarınıza ssh bağlantısı kurması gerekiyor. Bunun üstesinden de şu şekilde gelinebilir. Siz ofisten çıkmadan önce, ofis bilgisayarınızdan dışarıdaki bir sunucuya ssh bağlantısı yaparsınız ve ev bilgisayarınız ile bu dışarıdaki sunucuya bağlanırsınız. Dışarıdaki sunucu ip adresi,
90.xx.xx.xx olsun. Bahsettiğim işleyiş şu şekilde şematize edilebilir.

Ofis bilgisayarınızda vnc kurulu olsun ve siz evinizden vnc sunucusuna erişmek istiyorsunuz. Normal koşullarda, -R parametresi ile sunucuda açacağınız portu sadece localhost dinler. Oysa bu örnekte sunucu dışarıdan (ev bilgisayarınızdan) gelecek olan bağlantıları da kabul edeceği için ssh sunucusunun ayarlarında değişiklik gerekiyor.
/etc/ssh/sshd_config dosyasına şu satırı eklemek gerekiyor.
GatewayPorts clientspecified
Ve ssh sunucusunu yeniden başlatın. Bu ayarı yaptıktan sonra bağlantıyı sağlayabiliriz.
Ofis bilgisayarınızdan sunucuya bağlantı kurmanız gerekiyor.
ssh 90.xx.xx.xx -R 90.xx.xx.xx:5901:localhost:5900
Artık tek yapmanız gereken ev bilgisayarınızdan sunucunuza vnc istemcisi ile bağlanmak.
vncviewer 90.xx.xx.xx:1