Odpowiedzi:
Próbować:
sftp -o "IdentityFile=keyname" jay@server.name.com
Możesz użyć, -o
aby przekazać dowolną ważną opcję ~/.ssh/config
.
IdentityFile
opcja była zawsze podawana automatycznie, sprawdź odpowiedź UtahJarhead na temat jej wprowadzenia~/.ssh/config
Skopiuj swój klucz PUBLICZNY na serwer w tradycyjny sposób.
Na serwerze:
.ssh
jeśli nie istnieje:[[! -d „$ {HOME} /. ssh”]] && mkdir -p „$ {HOME} /. ssh”
cat /path/to/public_key.pub >> "$ {HOME} /. ssh /
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / Author_keys"
Następnie powinieneś być w stanie zalogować się z klienta za pomocą klucza PRYWATNEGO. Aby zautomatyzować transfer, chcesz użyć pliku wsadowego, który jest po prostu plikiem tekstowym zawierającym listę poleceń do wykonania.
echo „umieść nazwę pliku.foo /safe/path/filename.foo” >> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key użytkownik @ host
Alternatywnie, możesz utworzyć plik ~ / .ssh / config w formacie ssh_config, abyś mógł po prostu wpisać to w przyszłości:
sftp -b /tmp/batchfile.txt host
Przykładowa zawartość ~/.ssh/config
Host the_hostname Użytkownik nazwa_użytkownika IdentityFile / path / to / private_key
Jeśli chcesz skonfigurować sftp na ec2, ten artykuł może ci pomóc
Niedawno zająłem się tym problemem i to, co zadziałało w mojej domyślnej konfiguracji terminala Macbook, jest następujące
sftp -i ./privateFilePath.key username@url.com
Pamiętaj, że możesz awansować z NIEBEZPIECZNYM PRYWATNYM KLUCZEM! wiadomość, w którym to przypadku musisz uruchomić to polecenie, aby upewnić się, że Twój klucz prywatny nie jest dostępny dla innych.
chmod 600 privateFilePath.key
W niektórych przypadkach musisz umieścić sudo przed poleceniem, dzieje się tak tylko wtedy, gdy pracujesz w katalogu chronionym przez administratora
Chciałbym, żeby było to pomocne :)
-i
opcja nie działa?