ssh構成ファイルでSCPまたはSFTPを使用していますか?


44

おそらく私のgoogle-fooがここで失敗しています... SFTP設定ファイルを使用してリモートサーバーにSFTPまたはSCPを使用してターミナル経由でmysqlダンプファイルを接続してアップロードしたいと思います。私が見つけたドキュメントによると、私はこれを行うことができるはずです:

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

また、私の設定でエイリアスを使い果たしました:

sftp -F db.sql.gz myalias /tmp

上記の2つを実行すると、可能なコマンドの-F1つである印刷物が出力されます。

私はすでにローカル設定のショートカットを使用してssh経由ですでに接続できるので、それが機能することを知っています:

ssh myalias

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

...だから、私が何を間違っているのか分かりません。

回答:


46
  1. ヘルプテキストから: " ... [-F ssh_config] ..."

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

    plain ssh myaliasはすでに機能しているため、-Fここでオプションを指定する必要はありません。sftp myaliasサーバーに接続するだけです。

  2. ただし、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 webost@staging2.example.com:/tmp
    

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

他のSFTPクライアントもあります。lftpはインタラクティブな使用に適していますが、curlは自動化が容易です。バックアップなどの場合は、rsync(独自のプロトコルを実行しますが、まだSSH内にあります)を使用することもできます。


うわー、これは完璧で、うまくいきました!私は端末に精通しているので、これは将来本当に役立つでしょう。
ダニーイングランド

0

以下のForwardAgent構成が原因の問題、

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

私の場合、それはssh構成の「ForwardAgent」がscpをハングさせたためでした。コメントアウトしたら、私のために働いた。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.