
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
ヘルプテキストより: "
... [-F ssh_config] ...
"上記によると、
-F
OpenSSH 構成ファイルへのパス~/.ssh/config
などの 1 つの引数が必要です。ただし、代わりに gzip 圧縮された SQL ダンプを渡しています。plain は
ssh myalias
すでに動作しているので、ここでオプションは必要ありません-F
。sftp myalias
サーバーに接続するだけです。ただし、OpenSSH
sftp
クライアントは、あなたがしようとしているようなファイルのアップロードをサポートしていません。ファイルのダウンロード (構文を使用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 を使用して動作させることもできます。