SSH 設定ファイルで SCP または SFTP を使用していますか?

SSH 設定ファイルで SCP または SFTP を使用していますか?

SSH 設定ファイルを使用して、SFTP または SCP を使用してターミナル経由で MySQL ダンプ ファイルをリモート サーバーに接続し、アップロードしたいと思います。見つけたドキュメントによると、次の操作を実行できるはずです。

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

設定でエイリアスも試してみました:

sftp -F db.sql.gz myalias /tmp

上記の 2 つを実行すると、実行可能なコマンドの 1 つが印刷されるだけです-F

ローカル設定のショートカットを使用して SSH 経由で接続することはすでに可能なので、それが機能することはわかっています。

ssh myalias

注記: 秘密/公開キーのペアを使用して接続しているので、パスワードを入力する必要はありません。キー ペアにはパスフレーズが関連付けられていますが、OS X キーチェーンは最初に接続したときにそれを記憶していました。

それで、何が間違っているのか分かりません。

答え1

  1. ヘルプテキストより: " ... [-F ssh_config] ..."

    上記によると、-FOpenSSH 構成ファイルへのパス~/.ssh/configなどの 1 つの引数が必要です。ただし、代わりに gzip 圧縮された SQL ダンプを渡しています。

    plain はssh myaliasすでに動作しているので、ここでオプションは必要ありません-Fsftp myaliasサーバーに接続するだけです。

  2. ただし、OpenSSHsftpクライアントは、あなたがしようとしているようなファイルのアップロードをサポートしていません。ファイルのダウンロード (構文を使用host:path) または対話モードでの動作のみが可能です。アップロードするには、対話モードのいずれかを使用する必要があります...

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

    ...またはscpツール:

    scp db.sql.gz myalias:/tmp
    

    または

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

(sftp には、 を使用してファイルからコマンドを読み取ることができるバッチ モードがありますが、単一のアップロードに-b使用する方が簡単です。)scp

他にもSFTPクライアントはあります –lftpインタラクティブな使用に適していますが、カール自動化が簡単になります。バックアップなどには、rsync(独自のプロトコルを実行しますが、SSH 内で実行されます)。

答え2

以下のようなForwardAgentの設定によって発生する問題。

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

私の場合、ssh 設定の「ForwardAgent」が原因で scp がハングしていました。これをコメントアウトすると、私の場合はうまくいきました。

また、ForwardAgent 行をコメント化したファイルのコピーを用意し、scp -F を使用して動作させることもできます。

関連情報