Використовуєте SCP або SFTP для мого файлу ssh config?


44

Можливо, мій google-foo тут не вдається мені ... Я хотів би підключити і завантажити таємний файл mysql через термінал за допомогою SFTP або SCP на віддалений сервер за допомогою мого конфігураційного файлу ssh. Відповідно до документації, яку я знайшов, я повинен бути в змозі зробити це:

sftp -F db.sql.gz webost@staging2.example.com /tmp

Я також втомив псевдонім у своєму конфігурації:

sftp -F db.sql.gz myalias /tmp

Коли я виконую два вище, я просто дістаю друк з можливих команд, -Fбудучи однією з них.

Я вже можу підключитися через ssh за допомогою ярлика в моєму локальному конфігурації просто добре, тому я знаю, що це працює:

ssh myalias

** Примітка. Я підключаюсь за допомогою пари приватного / відкритого ключа, тому мені ніколи не потрібно вводити пароль. У парі клавіш є пов'язана з ним парольна фраза, але OS X Keychain пам'ятав, що я вперше підключився.

... тож я не впевнений, що роблю не так.

Відповіді:


46
  1. З тексту довідки: " ... [-F ssh_config] ..."

    Згідно з вищесказаним, -Fочікує один аргумент: шлях до файлу конфігурації OpenSSH ~/.ssh/configабо подібного. Але ви надаєте йому gzipped дамб SQL.

    Оскільки звичайна ssh myaliasвже працює, тут вам навіть не потрібна така -Fопція. Просто sftp myaliasпідключився б до сервера.

  2. Однак sftpклієнт OpenSSH не підтримує завантаження файлів, як ви намагаєтеся; він може завантажувати лише файли (за допомогою синтаксису host:path) або працювати в інтерактивному режимі. Для завантаження потрібно використовувати або інтерактивний режим ...

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

    ... або scpінструмент:

    scp db.sql.gz myalias:/tmp
    

    або

    scp db.sql.gz webost@staging2.example.com:/tmp
    

(sftp має пакетний режим, в якому він може читати команди з файлу, використовуючи -b, але це простіше використовувати scpдля одиночного завантаження.)

Також є й інші клієнти SFTP - lftp хороший для інтерактивного використання, тоді як згортання може бути простішим в автоматизації. Для резервного копіювання тощо ви можете також використовувати rsync (який працює за власним протоколом, але все ще знаходиться в SSH).


Нічого це ідеально, чудово працював! Я просто знайомлюсь з терміналом, і це справді стане в нагоді в майбутньому.
Danny Englander

0

Проблема, викликана конфігурацією ForwardAgent, як показано нижче,

Host dockervm
   HostName x.x.x.x
   User root
   Preferredauthentications publickey
   ForwardAgent yes

У моєму випадку, це було пов’язано з "ForwardAgent" на ssh config, який спричинив зависання scp. Одного разу, коментуючи це, працювали на мене.

Крім того, ви можете мати копію файлу з коментованим рядком ForwardAgent і використовувати scp -F, щоб змусити його працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.