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

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

ただいまの
回答率

90.51%

  • Linux

    4436questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ローカルのファイル(ディレクトリ)をサーバにアップしたい

解決済

回答 1

投稿 編集

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

akkkkin

score 71

掲題の件でご相談です。

【やったこと】
sshでさくらのVPSにログインし、以下のcommandを実行。

scp -r ~/Desktop/hoge riki@[サーバのIPアドレス]:/home/riki/

すると以下の結果になり、アップロードできない。

port 22: connection refused

もしやPC側のディレクトリをさくらのVPSサーバーにアップロードするので、
最初にSSHでログインしたのがまずかったのかも、と思い直し、
コマンドプロンプトでPCのログイン状態で同じくcommandを実行。

scp -r ~/Desktop/hoge riki@[サーバのIPアドレス]:/home/riki/

すると以下の結果になり、やはりアップロードできない。

ssh: connect to host [サーバのIPアドレス] port 22: Bad file number

つきましては、どのようにcommandを打てば、ローカルのファイル(ディレクトリ)をアップロードできるのでしょうか?以上ご教示頂ければありがたいです。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • coco_bauer

    2016/12/08 10:29

    connection refusedですから、サーバ側で22とは違うポート番号に設定されているのではありませんか?

    キャンセル

  • akkkkin

    2016/12/08 10:35

    回答ありがとうございます。はい、そうです。その場合、どのようにcommandを打てば良いのでしょうか?

    キャンセル

回答 1

checkベストアンサー

+1

ポート番号が分かっているなら以下でいけます。

scp -P [ポート番号] -r ~/Desktop/hoge riki@[サーバのIPアドレス]:/home/riki/

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/08 12:17

    ありがとうございます。
    ご教示いただきました。commandを実行しましたが、以下の結果になりました。
    ーーーーー
    usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i ide
    [-l limit] [-o ssh_option] [-P port] [-S program]
    [[user@]host1:]file1 ... [[user@]host2:]file2
    ーーーー
    アップロードもされていませんでした。
    上記のcommandはさくらVPSにSSHでログインしていない状態で、コマンドプロンプトにcommand実行するという認識でいいでしょうか?

    キャンセル

  • 2016/12/08 12:24

    表示されているのはscp本来の動作に関するエラーではなく、scpコマンドのオプションないし引数が間違っている、というものです。
    もう一度入力したコマンドをよく見てみてください。

    なお、対象サーバにSSHログインしている/していないはscpコマンドの動作に影響しません。

    キャンセル

  • 2016/12/08 12:42

    回答ありがとうございます。

    入力したコマンドは下記なのですが、もしかするとパスの記述が間違っていますでしょうか?
    ーーーー
    scp -p1022 -r /Desktop/sample hogehoge@[サーバのIPアドレス]:/www/html/hoge/wp-content/plugins/
    ーーーー

    例えばwwwの記述は不要とか考えられますでしょうか?

    キャンセル

  • 2016/12/08 12:48

    メッセージや人のコメントをよく読みましょう。
    ポート指定オプションは大文字"-P"です。
    また、オプションとポート番号の間にスペースを空けた方が良いです。

    キャンセル

  • 2016/12/08 13:00

    ありがとうございます。
    “P”を大文字にしたのですが、やはりダメでした。

    ーーーーー
    scp -P 1022 -r~/Desktop/sample hogehoge@[サーバのIPアドレス]:/www/html/hoge/wp-content/plugins/
    ーーーーー
    入力は間違っていないと思うのですが・・・

    キャンセル

  • 2016/12/08 13:06

    エラーメッセージはどう出ていますか?どうダメだったのか分からないとコメントが難しいです。
    また、"-r"と"~"の間はスペースが空いてますか?

    キャンセル

  • 2016/12/08 13:18

    情報不足で申し訳ありません。下記の表示がでております。
    ーーーー
    usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
    [-l limit] [-o ssh_option] [-P port] [-S program]
    [[user@]host1:]file1 ... [[user@]host2:]file2

    キャンセル

  • 2016/12/08 13:31

    こちらでも試しましたが以下で問題ないですね。

    scp -P <port> -r ~/<src dir> <user>@<ip addr>:<dst dir>

    パスが間違っている等であれば"No such file or directory"表示でエラーになります。
    転送先ホストのポートが空いていなければ"ssh: connect to host <ip addr> port <port>: No route to host"表示でエラーになります。
    usageが出ている以上はオプションか引数のミスです。

    キャンセル

  • 2016/12/08 13:41

    回答ありがとうございます。
    <port>はサーバーのポートでいいのでしょうか?

    また、sudoを入力していないからはじかれる、ということはないでしょうか?

    キャンセル

  • 2016/12/08 13:43

    <port>は接続先ポート番号です。
    今回の場合は1022ですよね。

    scpのusageが出るならsudoは関係ないはずです。
    ※というか試してみた方が早くないですか?

    キャンセル

  • 2016/12/08 13:58 編集

    回答ありがとうございます。
    ><port>は接続先ポート番号です。
    接続先というのはディレクトリの移行先のサーバーのことでいいのでしょうか?
    ※デスクトップのフォルダをさくらVPSにアップロードする場合だとさくらVPSのポートが接続先ポート番号だとすればあっているのですが・・・

    >scpのusageが出るならsudoは関係ないはずです。
    承知しました。試したのですが、もしや記載順序が違っていたらとおもい質問しました。言葉足らずでした。

    キャンセル

  • 2016/12/08 14:08

    ポート番号ですが、「ファイル(ディレクトリ)を転送したい転送先サーバのSSH待ち受けポート番号」の意味です。

    キャンセル

  • 2016/12/08 16:15

    横からスミマセン。
    scp -P 1022 -r~/Desktop/sample hogehoge@[サーバのIPアドレス]:/www/html/hoge/wp-content/plugins/
    をそのままコピペして実行したら
    unknown option -- ~
    (usage: scp ...)
    と言われました。

    -r の次にスペースを入れたら
    ssh: Could not resolve hostname \343.....: Name or service not known
    に変わりました。

    文法エラーなので、ポート番号とかパスの記載以前の問題かと。

    キャンセル

  • 2016/12/08 16:24

    >文法エラーなので、ポート番号とかパスの記載以前の問題かと。
    承知しました。皆さんはファイルが入ったPCのローカルにあるフォルダをサーバー(例えばさくらVPS)にアップロードしたい場合はどのようにコマンドを叩かれていらっしゃるのでしょうか?

    キャンセル

  • 2016/12/08 16:30

    チルダ記号はLinux/Unixでは「ホームディレクトリ」という意味で、パスとして解釈してくれます。
    単に"~"ならカレントユーザのホームディレクトリ、"~<username>"で指定したユーザ名のホームディレクトリという意味になります。
    いずれにせよscpの"-r"オプションの後にスペースは必要ですね。

    テストの意味で、例えばローカルの"/tmp/aaa.txt"をリモートの"/tmp"配下にscpしてみたらどうですか。
    この場合、以下のコマンドで済むはずです。

    scp -P 1022 /tmp/aaa.txt hogehoge@<ip>:/tmp/.

    scpやポートの問題なのか、他の問題か切り分けていくしかないです。

    キャンセル

  • 2016/12/08 17:10

    > 皆さんはファイルが入ったPCのローカルにあるフォルダをサーバー
    >(例えばさくらVPS)にアップロードしたい場合はどのように
    >コマンドを叩かれていらっしゃるのでしょうか?

    手元の環境が Windows であれば、WINSCP というファイル
    転送用の GUI ツールがあります。手元が Linux であれば rsync
    というディレクトリ同期ツールもあります。さらに、今の流行り
    で言えば git/github かもしれません。

    いずれにせよ、アップロード先の OS が Linux の場合、ssh/scp
    は避けては通れません。winscp / rsync / git も、認証機能としては
    事実上 ssh/scp と同じものを使うことがほとんどでしょうから、
    今試そうとしている scp が無事に開通した後の応用問題となります。

    キャンセル

  • 2016/12/12 09:34

    なるほどです。ありがとうございます。

    キャンセル

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

  • Linux

    4436questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。