質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.50%

scpコマンド サーバから踏み台に転送したい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,728

score 60

(やっていること)
TeraTermを使用しaws環境にアクセスしています。
踏み台からサーバにアクセスする形となっております。
踏み台とサーバはsshでアクセスします。

踏み台:ssh -i 秘密鍵のパス ユーザ名@ホスト名 -p ポート番号
サーバ:ssh -i 秘密鍵のパス ユーザ名@ホスト名

(やりたい事)
サーバにあるディレクトリを踏み台に転送したいです。
転送の仕方はscpコマンドで行いたいです。
サーバにアクセスしている状態でscpコマンドを実行したいです。

(困っている事)
サーバにアクセスしている状態で下記のscpコマンドを実行した時に13890: No such file or directoryと表示されてしまいます。

scp -r -p -i 踏み台の秘密鍵 転送元ディレクトリパス 踏み台ユーザ名@ホスト名:転送先ディレクトリパス -P ポート番号


逆に踏み台にいる状態で下記のscpコマンドを実行すると転送できます。

scp -r -p -i サーバの秘密鍵 サーバユーザ名@ホスト名:転送元ディレクトリパス 転送先ディレクトリパス


ディレクトリパスはどちらも同じものを指定しており、エラーに関してはNo such file or directoryのみなのでどちらのパスが違うかも分かりません。
ちなみに踏み台でもサーバでも上記のscpコマンドで指定しているパスをcdコマンドで実行すると移動できます。
分かる方がいましたらご教示頂きたいです。よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • hidezzz

    2021/01/21 21:31

    多分、(TeraTermの入っている)Windowsマシン→踏み台→サーバの方向でしか接続をさせることが出来ないようになっていると思います。
    提示されているエラーもファイアウォール以前の問題でエラーが出ています。サーバから見て踏み台のホスト名が分からないことと、サーバから踏み台に接続するための公開鍵認証用の鍵ファイルが設定されていないということだと思います。
    ネットワーク管理者のかたにコンタクトをとって、どのような接続が可能な想定でネットワーク設定がされているのかを確認されるとよろしいかと思います。

    キャンセル

  • hiroki88

    2021/01/21 22:14

    そうゆう事だったんですね。
    大変分かりやすく説明していただきありがとうございます。
    エラーになってしまう原因が納得いきました。
    管理者の方に聞いてみます。
    ベストアンサーにしたいのですが修正依頼の方にご回答いただいているので
    回答の方に適当にコメントしていただいてもよろしいですか?

    キャンセル

  • hidezzz

    2021/01/21 22:17

    では、上に書いたコメントを回答のほうに転記します。

    キャンセル

回答 2

checkベストアンサー

+1

このようなサーバと踏み台という名前から想像されるような構成の場合、ファイアウォール等でサーバ→踏み台方向の接続は許可しないかまたはかなり限定的なアクセスしか許可しないように設定することが多いと思います。 
多分、(TeraTermの入っている)Windowsマシン→踏み台→サーバの方向でしか接続をさせることが出来ないようになっていると思います。
提示されているエラーもファイアウォール以前の問題でエラーが出ています。サーバから見て踏み台のホスト名が分からないことと、サーバから踏み台に接続するための公開鍵認証用の鍵ファイルが設定されていないということだと思います。

ネットワーク管理者のかたにコンタクトをとって、どのような接続が可能な想定でネットワーク設定がされているのかを確認されるとよろしいかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/01/22 14:02 編集

    つづけてになってしまい申し訳ありませんが別のことで分からないことがありお聞きしたいことがあります。
    色々ご教示頂きまして理解がだいぶ深まったのですがrsyncコマンドも使用したいと思っておりその際に現在私の環境上Windowsマシン→踏み台→サーバの一方向しか接続ができないので踏み台にいる状態でサーバにrsyncで差分を取得したいと思っています。
    実際にrsyncコマンドを下記のように実行したら次のエラーがでてしまいました。
    rsync -achnv --delete - e 'ssh -i サーバの秘密鍵' サーバユーザ名@ホスト名:ディレクトリパス ディレクトリパス

    Warning: Identity file 秘密鍵のパス not accessible: No such file or directory.
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
    rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
    rsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9]

    ちなみに踏み台にいる状態でサーバにscpコマンド実行をすることは可能です。
    ディレクトリパスもrsyncに使用しているものと同一です。
    scp -r -p -i サーバの秘密鍵 サーバユーザ名@ホスト名:ディレクトリパス ディレクトリパス
    scpだと上手くいくのですがrsyncだとだめでした。
    sudoを使用して実行してみましたが同じエラーがでました。
    エラーの感じからすると秘密鍵の設定と権限回りがいけないのでしょうか?

    キャンセル

  • 2021/01/23 10:07

    少なくとも、「~/.ssh/id_rsa」を「~/.ssh/id_rsa.tmp」にリネームした上でその秘密鍵を指定して試した限り、手元の環境ではscpもrsyncもコピーに成功しました。
    そちらの環境がどうなっているかわからないのでこれ以上はなんとも言えません。

    $ scp -p -i ~/.ssh/id_rsa.tmp h2a2:.profile /tmp/.
    Enter passphrase for key '/home/hidezzz/.ssh/id_rsa.tmp':
    .profile 100% 807 51.0KB/s 00:00

    $ rsync -avH -e 'ssh -i ~/.ssh/id_rsa.tmp' h2a2:.profile /tmp/.
    Enter passphrase for key '/home/hidezzz/.ssh/id_rsa.tmp':
    receiving incremental file list
    .profile

    sent 43 bytes received 921 bytes 113.41 bytes/sec
    total size is 807 speedup is 0.84

    キャンセル

  • 2021/01/25 15:13

    わざわざ実際に確認して頂きましてありがとうございます。
    環境については詳しく知らないため、まず環境が問題ないか確認してからコマンドの方も確認したいと思います。
    本当にありがとうございました。

    キャンセル

+1

scp -r -p -i 踏み台の秘密鍵 転送元ディレクトリパス 踏み台ユーザ名@ホスト名:転送先ディレクトリパス -P ポート番号

これだと、転送元ディレクトリパス踏み台ユーザ名@ホスト名:転送先ディレクトリパス-P の三つのファイル(ディレクトリ)をポート番号にコピーするという意味になります。
以下のように-Pによるポート指定を前に持ってきてください。

scp -r -p -i 踏み台の秘密鍵 -P ポート番号 転送元ディレクトリパス 踏み台ユーザ名@ホスト名:転送先ディレクトリパス

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/01/21 21:01 編集

    ご回答ありがとうございます。
    そうだったんですね、オプションを指定する位置を間違えておりました。
    修正して実行したところ下記のエラーが表示されました。
    Warning: Identity file 秘密鍵 not accessible: No such file or directory.
    ssh: Could not resolve hostname ホスト名: Name or service not known
    lost connection
    別の回答でファイヤーウォール等でブロックされているとのご指摘を頂きました。
    scpコマンド自体はご指摘いただいた修正で解決しましたのでファイヤーウォール等を確認してみます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る