Używasz SCP lub SFTP z moim plikiem konfiguracyjnym ssh?

41

Być może mój google-foo zawodzi mnie tutaj ... Chciałbym połączyć i przesłać plik zrzutu mysql przez terminal przy użyciu SFTP lub SCP na mój zdalny serwer przy użyciu mojego pliku konfiguracyjnego ssh. Zgodnie z dokumentacją, którą znalazłem, powinienem móc to zrobić:

sftp -F db.sql.gz [email protected] /tmp

Zmęczyłem również alias w mojej konfiguracji:

sftp -F db.sql.gz myalias /tmp

Kiedy robię dwa powyższe, po prostu otrzymuję wydruk możliwych poleceń, -Fbędąc jednym z nich.

Mogę już połączyć się przez ssh za pomocą skrótu w mojej lokalnej konfiguracji, więc wiem, że działa:

ssh myalias

** Uwaga: Łączę się za pomocą pary kluczy prywatny / publiczny, więc nigdy nie muszę wprowadzać hasła. Z parą kluczy jest powiązane hasło, ale brelok OS X pamięta, że ​​przy pierwszym połączeniu.

... więc nie jestem pewien, co robię źle.

Danny Englander
źródło

Odpowiedzi:

45
  1. Z tekstu pomocy: „ ... [-F ssh_config] ...

    Zgodnie z powyższym -Foczekuje jednego argumentu: ścieżki do pliku konfiguracyjnego OpenSSH ~/.ssh/configlub podobnego. Ale zamiast tego dajesz mu zrzut SQL.

    Ponieważ zwykły ssh myaliasjuż działa, nawet -Ftutaj nie potrzebujesz tej opcji. Po prostu sftp myaliaspołączy się z serwerem.

  2. Jednak sftpklient OpenSSH nie obsługuje przesyłania plików tak, jak próbujesz; może tylko pobierać pliki (przy użyciu składni host:path) lub pracować w trybie interaktywnym. Aby przesłać, musisz użyć trybu interaktywnego ...

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

    ... lub scpnarzędzie:

    scp db.sql.gz myalias:/tmp
    

    lub

    scp db.sql.gz [email protected]:/tmp
    

(sftp ma tryb wsadowy, w którym może odczytywać polecenia z pliku, przy użyciu -b, ale łatwiej jest go używać scpdo pojedynczego przesyłania).

Są też inni klienci SFTP - lftp jest dobry do interaktywnego użytku, a zwijanie może być łatwiejsze do zautomatyzowania. Do tworzenia kopii zapasowych i tym podobnych można również użyć rsync (który uruchamia swój własny protokół, ale nadal wewnątrz SSH).

grawitacja
źródło
wow to jest idealne, działało świetnie! Właśnie poznałem terminal, więc to naprawdę przyda się w przyszłości.
Danny Englander