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.