コマンドライン – ssh 設定ファイルで SCP または SFTP を使用するには?

command-line scp sftp terminal

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

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

設定のエイリアスも疲れてしまいました

sftp -F db.sql.gz myalias /tmp

上の二つを実行すると、-Fがそのうちの一つである可能性のあるコマンドのプリントアウトが得られます

ローカル設定のショートカットを使って ssh で接続することができるので、それがうまくいくことはわかっています

ssh myalias

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

…なので、何を間違っているのかよくわかりません

  45  Danny Englander  2012-05-07


ベストアンサー

  1. ヘルプのテキストから”... [-F ssh_config] ...

    上記によると、-F はひとつの引数として OpenSSH 設定ファイルへのパス、 ~/.ssh/config あるいはそれに似たものを指定します。しかし、あなたは代わりに圧縮された SQL ダンプを渡しています

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

  2. しかし、OpenSSH sftp クライアントはあなたがしようとしているようなファイルのアップロードには対応していません。アップロードするには、対話モードのどちらかを使う必要があります

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

    …またはscpツール

    scp db.sql.gz myalias:/tmp
    

    or

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

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

他の SFTP クライアントもあります – lftp は対話的な使用に適していますが、curl は自動化が容易です。バックアップなどのためには、rsync (独自のプロトコルを実行しますが、SSH の中で動作します) を使うこともできます

52  user1686  2012-05-07


以下のようなForwardAgentの設定で問題が発生しています

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

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

また、ForwardAgentの行がコメントされているファイルのコピーを持っていて、scp -Fを使って動作させることもできます

0  MohanBabu  2019-09-17


タイトルとURLをコピーしました