Ssh config dosyamla SCP veya SFTP kullanmak?


44

Belki google-foo'm burada beni kaybediyor ... ssh config dosyasını kullanarak uzak sunucuma SFTP veya SCP kullanarak terminal aracılığıyla bir mysql döküm dosyasını bağlamak ve yüklemek istiyorum. Bulduğum belgelere göre, bunu yapabilmeliyim:

sftp -F db.sql.gz webost@staging2.example.com /tmp

Ayrıca config alanımda diğer adı da yordum:

sftp -F db.sql.gz myalias /tmp

Yukarıdaki ikisini yaparken, -Fbunlardan biri olan olası komutlardan bir baskı alıyorum .

Yerel konfigürasyonumdaki kısayolu kullanarak sadece ssh ile bağlanabiliyorum, bu yüzden işe yaradığını biliyorum:

ssh myalias

** Not: Özel / ortak bir anahtar çifti kullanarak bağlanıyorum, bu yüzden asla bir şifre girmem gerekmiyor. Anahtar çiftinin kendisiyle ilişkilendirilmiş bir parolası var, ancak OS X Keychain ilk bağlandığımda olduğunu hatırladı.

... yani neyi yanlış yaptığımdan emin değilim.

Yanıtlar:


46
  1. Yardım metninden: " ... [-F ssh_config] ..."

    Yukarıdakilere göre, -Fbir argüman bekliyor: bir OpenSSH konfigürasyon dosyasına giden yol ~/.ssh/configveya benzeri. Ancak bunun yerine gzipli bir SQL dökümü veriyorsunuz.

    Ova ssh myaliaszaten çalışıyor olduğundan, buradaki -Fseçeneğe bile ihtiyacınız yok. Sadece sftp myaliassunucuya bağlanacaktı.

  2. Ancak, OpenSSH sftpistemcisi çalıştığınız gibi dosyaların yüklenmesini desteklemiyor; yalnızca dosyaları (sözdizimini kullanarak host:path) indirebilir veya etkileşimli modda çalışabilir. Yüklemek için etkileşimli modu kullanmanız gerekir ...

    $ sftp myalias
    sftp> cd /tmp
    sftp> put db.sql.gz
    

    ... veya scpalet:

    scp db.sql.gz myalias:/tmp
    

    veya

    scp db.sql.gz webost@staging2.example.com:/tmp
    

(sftp, komutlarını kullanarak bir dosyadan komutları okuyabileceği bir toplu iş moduna sahiptir -b, ancak scptek yüklemelerde kullanımı daha kolaydır .)

Başka SFTP istemcileri de var - lftp etkileşimli kullanım için iyidir, kıvrılma işlemi otomatikleştirmek daha kolay olabilir. Yedekler ve benzerleri için, rsync'i de kullanabilirsiniz (bu, kendi protokolünü çalıştırır ancak yine de SSH içinde).


vay bu mükemmel, harika çalıştı! Sadece terminale aşina oluyorum, bu yüzden bu gelecekte çok işe yarayacak.
Danny Englander

0

ForwardAgent config'in neden olduğu problem

Host dockervm
   HostName x.x.x.x
   User root
   Preferredauthentications publickey
   ForwardAgent yes

Benim durumum, ssh ayarındaki 'ForwardAgent' yüzünden scp'nin askıda kalmasına neden oldu. Bir kez yorumladı, benim için çalıştı.

Ayrıca, ForwardAgent çizgisi yorumlanmışken dosyanın bir kopyasına sahip olabilir ve çalışması için scp-F komutunu kullanabilirsiniz.

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.