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 webost@staging2.example.com /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.

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 webost@staging2.example.com:/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).


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
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.