İstemcilerde ve sunucularda ortak anahtar kimlik doğrulamasıyla SFTP'yi ayarlama ve doğrulama
çevre
- Windows
-
- Windows 10 Pro
- Windows Server 2019
- Windows 7
- Windows Server 2012 R2
- OpenSSH
-
- 7.7p1
- 8.1p1 - Beta
※ Diğer versiyonlarda çalışır, ancak onaylanmamıştır
İlk başta
Son kez, parola kimlik doğrulamasının dosya gönderip almanıza izin verdiğini doğrulamak için bir SFTP sunucusu kurabilirsiniz. Bu kez, sftp ortak anahtar kimlik doğrulamasını kullanarak dosya gönderir ve alır.
Önceden hazırlık
- İstemcide bir OpenSSH istemcisi yüklü
- Sunucuda yüklü bir OpenSSH sunucusu var.
- Sunucu OpenSSH hizmetini başlatır ve bağlantı noktası 22 serbest bırakılır.
İstemcide özel ve ortak anahtarlar oluşturma
İstemcinin oturumunu açın. Özel ve ortak anahtarlar sunucu tarafında da oluşturulabilir, ancak özel anahtar istemci olur ve ortak anahtar sunucu tarafından tutulur. İstemci tarafında oluşturun.
PowerShell'i yönetici haklarıyla başlatın.
Dosya oluşturun, cd komutuyla herhangi bir klasöre gidin ve aşağıdaki komutu yazın:
ssh-keygen -t rsa -f id_rsa
Anahtara bir parola (parola) koyabilirsiniz, bu yüzden lütfen gerekirse koyun.
Anahtar başarıyla oluşturulursa, ortak ve özel anahtarlar klasörde aşağıdaki gibi oluşturulur: "id_rsa" özel anahtardır ve "id_rsa.pub" ortak anahtardır.
Sunucuya ortak anahtar yerleştirme
Sunucu için SFTP hesabınızla Windows'ta oturum açın.
Lütfen oluşturulan ortak anahtar "id_rsa.pub"ı sunucudaki aşağıdaki klasöre yerleştirin. 「. "Ssh" klasörünuz yoksa, lütfen bir klasör oluşturun. Ayrıca, dosya adını "authorized_keys" olarak değiştirin. (<> SFTP ile oturum açtığın kullanıcı adıyla değiştirin.)
- C:\Kullanıcılar\kullanıcı <>\.ssh
Bu dosyaya yalnızca "yönetici" veya SFTP kullanıcısı olan kullanıcıların erişebilecek olduğunu unutmayın. Diğer kullanıcıların erişimi varsa Sftp bağlantıları her zaman başarısız olur. Örneğin, NG'nin izne eklenmiş bir Kullanıcı veya Herkes grubu vardır.
Bu örnekte, ". "ssh" klasörünün erişim hakları "Group:SYSTEM", "Group: Administrators" ve "User: sftptest" dir. bir izni kaldıramıyorsanız, izin devralmayı devre dışı bırakın.
Sunucuda ortak anahtar kimlik doğrulamasını etkinleştirme
Yönetici izinleri kullanıcılarıyla sunucuda oturum açın ve aşağıdaki klasörleri açın:
- C:\ProgramData\ssh
"sshd_config" adlı bir dosya olduğundan, kopyalayın ve dosya adını "sshd_config_default" olarak değiştirin ve bir yedekleme ayarlayın.
Yönetici ayrıcalıklarıyla başlatılan metin düzenleyicisinde "sshd_config" açın.
Ortak anahtar kimlik doğrulamasını etkinleştirmek için aşağıdaki gibi değiştirin:
#PubkeyAuthentication yes
↓↓↓
PubkeyAuthentication yes
Ayrıca, parola kimlik doğrulaması varsayılan olarak etkinleştirilir, bu nedenle devre dışı bırakmak istiyorsanız aşağıdaki gibi değiştirin.
#PasswordAuthentication yes
↓↓↓
PasswordAuthentication no
Her SFTP hesabı için ortak bir anahtar yerleştirmek istiyorum, bu nedenle aşağıdaki satırı yorumlayacağım:
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
↓↓↓
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Her SFTP hesabı için kök dizini belirtmek isterseniz, aşağıdaki satırı ekleyin: Bunu belirtip belirtmediğinize bağlı olarak, istemciden bir klasör yolu belirttiğinizde, "C:\xxxxx" veya "/xxxxx" biçimine geçebilir.
Match User <ユーザー名>
ChrootDirectory <フォルダパス>
örnek
Match User TestUser
ChrootDirectory C:\Users\TestUser
sshd_config kaydettikten sonra OpenSSH sunucusunu yeniden başlatın.
Ortak anahtar kimlik doğrulaması olan istemcilerden dosya gönderme ve alma
SFTP'ye bağlanmadan önce oluşturduğunuz "id_rsa" özel anahtarını yalnızca SFTP çalıştıran kullanıcının erişebileceği bir klasöre yerleştirin. Sftp bağlantılarının, diğer kullanıcılar tarafından erişilebilen bir klasöre yerleştirilirse başarısız olacağını unutmayın. Özellikle klasörün Kullanıcılar ve Herkes grupları için izinleri varsa, BU NG'dir.
Temel olarak, aşağıdaki klasöre koyarsanız yola otomatik olarak başvuracağı için önerilir.
- C:\Kullanıcılar\kullanıcı <>\.ssh
Müşterinin ". "ssh" klasörünün erişim hakları "Grup:SİsTEM", "Grup: Yöneticiler", "Kullanıcı: < Oturum Açma kullanıcı >"dir.
Özel anahtarı kullanarak sftp'ye erişmek istiyorsanız, komutu aşağıdaki gibi yazın (<> değiştirin): Parola ayarladıysanız, bir parola da girin.
sftp -i id_rsa <ユーザー名>@<サーバー名>
Başarılı bir şekilde oturum açarsanız, oturum açan kullanıcının ekranına geçilirsiniz.
Dir komutuyla giriş olup olmadığınızı da kontrol edebilirsiniz.
Artık "test3.txt" adlı bir dosya hazırladığınıza göre, dosyayı put komutuyla gönderin.
put c:\temp\test3.txt
Sunucu tarafı C:\Users\sftptest klasörüne bakarsanız, test3.txt dosyasının gönderildiğini görebilirsiniz.
Müşteriden bir şey almayı dene.
get test3.txt c:\temp\test4.txt
Dosyanın elde edilebildiğini doğrulayabildim.
Özet
Ortak anahtar kimlik doğrulamasını kullanarak SFTP ile dosya gönderip alabildiniz. Ortak anahtar kullanarak, sunucu tarafı parolayı bilemez. Parola kimlik doğrulamasından daha güvenli bir şekilde dosya alışverişi yapmanıza olanak tanır.