Yanıtlar:
Deneyin:
sftp -o "IdentityFile=keyname" jay@server.name.com
İçinde -o
geçerli olan herhangi bir seçeneği geçmek için kullanabilirsiniz ~/.ssh/config
.
IdentityFile
Seçeneğin her zaman otomatik olarak verilmesini istediğinizi belirtiyorsanız, UtahJarhead'in bunu yerleştirme konusundaki cevabını kontrol edin~/.ssh/config
Geleneksel araçları kullanarak PUBLIC anahtarınızı sunucuya kopyalayın.
Sunucuda:
.ssh
Var değilse oluşturun :[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / yetkili_keys"
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
Ec2'de sftp kurulumu yapmak istiyorsanız, bu makale yardımcı olabilir
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ı :)
-i
seçeneğin çalışmadığını söylerken neden bunun yararlı olacağını düşünüyorsunuz ?