Jak korzystać z mojego pliku klucza, aby sftp przesyłać dane z jednego serwera na inny


25

Nie mogę scp, drugi serwer przyjmuje tylko połączenia sftp.

Obecnie próbuję to zrobić

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

-i keynamenie działa, po prostu rozwiązuje illegal option -- i.

Odpowiedzi:


34

Próbować:

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

Możesz użyć, -oaby przekazać dowolną ważną opcję ~/.ssh/config.


Przybiłam to. dzięki! jak mam go tam normalnie trzymać?
— Jay

Nie wiem, co rozumiesz przez „trzymaj to normalnie”. Jeśli masz na myśli, że chcesz, aby IdentityFileopcja była zawsze podawana automatycznie, sprawdź odpowiedź UtahJarhead na temat jej wprowadzenia~/.ssh/config
— Celada,

4

Skopiuj swój klucz PUBLICZNY na serwer w tradycyjny sposób.

Na serwerze:

  • Utwórz, .sshjeśli nie istnieje:
[[! -d „$ {HOME} /. ssh”]] && mkdir -p „$ {HOME} /. ssh”
  • Zaimplementuj klucz publiczny:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh /
  • Ustaw odpowiednie uprawnienia. OpenSSH jest BARDZO ANALNY w zakresie uprawnień do danych plików:
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

Spróbuję tego w następnej partii, ale powyższe rozwiązanie załatwiło sprawę.
— Jay

1

Jeśli chcesz skonfigurować sftp na ec2, ten artykuł może ci pomóc


Przepraszam, naprawdę nie.
— Jay

1
Ta „odpowiedź” nie ma nic wspólnego z pytaniem. Co gorsza, jest to tylko link do strony, która kiedyś zniknie.
— John Mayor,

0

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 :)


Dlaczego oczekujesz, że będzie to pomocne, gdy w pytaniu było napisane, że -iopcja nie działa?
— Scott,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.