Dosya transferi yapılabilmesi için linux sunucudan windows sunucuya ssh bağlantısının yapılabiliyor olması gerekmektedir. Amacımız ssh key oluşturup her iki sunucununda birbiri ile iletişimini sağlayabilmek. Windows sunucularda ssh bağlantısına (Port: 22) izin verilebilmesi için ssh server kurulması gerekmektedir. Tam da bu noktada imdaddımıza openSSH yetişiyor. Windows sunucuya openSSH servisinin kurulu olduğunu varsayarak devam edeceğim. Kurulu değilse openSSH-kurulumu takip edilebilir. Linux sunucudaki ssh key oluşturma işlemleri için:
1.Adım
ssh-keygen komutu kullanılarak public ve private key oluşturulmalıdır(şifre belirtmeden). Komut çalıştığında .ssh klasörü altında id_rsa ve id_rsa.pub olmak üzere 2 tane dosya oluşacaktır. Bunlarda id_rsa private key; id_rsa.pub public key olarak tanımlanır. Oluşturulan public key(id_rsa.pub) Windows sunucuda bağlantı yapılacak user için "C:\Users\kullanıcı\.ssh" klasörü altına kopyalanır. Ardından Windows sunucudaki aynı dizine(C:\Users\kullanıcı\.ssh) authorized_keys dosyası oluşturulur ve içerisine public key değeri eklenir.
Ardından Windows sunucuda aşağıdaki işlemler adım adım uygulanabilir.
1. Adım
aşağıdaki ekran görüntüsünde yer alan servisler çalıştırılır.
2.Adım
C:\ProgramData\ssh klasörüne geçilir. Aşağıdaki ekran görüntüsündeki gibi olmalı.
sshd_config dosyası içerisinde bazı değişiklikler yapmamız gerekecek.Gerekli değişiklikler aşağıdaki gibi olmalı başka bir şey yapmaya gerek yok.
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Artık linux sunucudan windows sunucuya ssh bağlantısı yapılabilir. Linux sunucudan windows sunucuya bağlanıp Desktop klasörüne gidip tüm dosyaları listeleme işlemini aşağıdaki gibi yapılabilmektedir. (ssh ile bağlantı yapıp birden fazla windows terminal komutu çalıştırma işlemi)
ssh user_name@ip_adresi:/dosya_yolu -i private_key 'cd Desktop && dir'
ya da test-dosya isimli klasörü windows sunucu masaüstüne kopyalanabilmekte.
scp -r -i private_key test-dosya user_name@ip_adresi:/C:/Desktop