Anahtar dosyamı, verileri bir sunucudan diğerine aktarmak için nasıl kullanırım?


25

Scp yapamam, diğer sunucu sadece sftp bağlantıları alır.

Şu anda yapmaya çalışıyorum

sftp jay@server.name.com:/files> put -r ~/

-i keynameçalışmıyor, sadece çözülür illegal option -- i.

Yanıtlar:


34

Deneyin:

sftp -o "IdentityFile=keyname" jay@server.name.com

İçinde -ogeçerli olan herhangi bir seçeneği geçmek için kullanabilirsiniz ~/.ssh/config.


Başarmak. Teşekkürler! orada normalde nasıl tutarım?
Jay

"Normalde orada tut" derken ne demek istediğini anlamadım. IdentityFileSeçeneğin her zaman otomatik olarak verilmesini istediğinizi belirtiyorsanız, UtahJarhead'in bunu yerleştirme konusundaki cevabını kontrol edin~/.ssh/config
Celada

4

Geleneksel araçları kullanarak PUBLIC anahtarınızı sunucuya kopyalayın.

Sunucuda:

  • .sshVar değilse oluşturun :
[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
  • Genel anahtarı uygulayın:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / yetkili_keys"
  • Uygun izinleri ayarlayın. OpenSSH, söz konusu dosyaların izinleri hakkında ÇOK ANALIDIR:
chmod go-rwx "$ {HOME}" "$ {HOME} /.

Bundan sonra, PRIVATE tuşunu kullanarak müşteriden giriş yapabilmeniz gerekir. Bir aktarımı otomatikleştirmek için, yalnızca yürütülecek komutların listesini içeren bir metin dosyası olan toplu iş dosyasını kullanmak istersiniz.

echo "dosyaadı.foo /safe/path/dosyaadı.foo koy" >> /tmp/batchfile.txt
sftp -b /tmp/batchfile.txt -oIdentityFile = / yol / adres / private_key kullanıcısı @ host

Alternatif olarak, ssh_config biçiminde bir ~ / .ssh / config dosyası oluşturmaktan çekinmeyin, böylece gelecekte bunu yazabilirsiniz:

sftp -b /tmp/batchfile.txt ana bilgisayarı

Örnek içeriği ~/.ssh/config

The_hostname sunucusunu barındır
    Kullanıcı kullanıcı_adı
    IdentityFile / yol / dan / private_key

Bunu bir sonraki partide deneyeceğim, yukarıdaki çözüm yine de işe yaradı.
Jay

1

Ec2'de sftp kurulumu yapmak istiyorsanız, bu makale yardımcı olabilir


Üzgünüm, gerçekten olmadı.
Jay

1
Bu "cevap", soruya katkıda bulunacak hiçbir şey içermiyor. Daha da kötüsü, bir gün kaybolacak bir sayfanın bağlantısı.
John Mayor,

0

Son zamanlarda bu sorunla karşılaştım ve benim için çalıştığım macbook varsayılan terminal kurulumunda şöyle:

sftp -i ./privateFilePath.key username@url.com

KORUMA ÖZEL ÖZEL ANAHTAR DOSYASI ile terfi edebileceğinizi unutmayın ! bu durumda özel anahtarınıza başkaları tarafından erişilemediğinden emin olmak için bu komutu çalıştırmanız gerekir.

chmod 600 privateFilePath.key 

Bazı durumlarda sudo komutunun önüne koymanız gerekir , bu yalnızca yönetici korumalı bir dizinde çalışıyorsanız geçerlidir.

Keşke bu yararlı :)


Soru, -iseçeneğin çalışmadığını söylerken neden bunun yararlı olacağını düşünüyorsunuz ?
Scott,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.