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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

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

Q&A

解決済

1回答

6267閲覧

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

akkkkin

総合スコア83

Linux

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

0グッド

0クリップ

投稿2016/12/08 01:09

編集2016/12/08 01:21

掲題の件でご相談です。

【やったこと】
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を打てば、ローカルのファイル(ディレクトリ)をアップロードできるのでしょうか?以上ご教示頂ければありがたいです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2016/12/08 01:29

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

2016/12/08 01:35

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

回答1

0

ベストアンサー

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

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

投稿2016/12/08 02:29

ynakano

総合スコア1894

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akkkkin

2016/12/08 03: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実行するという認識でいいでしょうか?
ynakano

2016/12/08 03:24

表示されているのはscp本来の動作に関するエラーではなく、scpコマンドのオプションないし引数が間違っている、というものです。 もう一度入力したコマンドをよく見てみてください。 なお、対象サーバにSSHログインしている/していないはscpコマンドの動作に影響しません。
akkkkin

2016/12/08 03:42

回答ありがとうございます。 入力したコマンドは下記なのですが、もしかするとパスの記述が間違っていますでしょうか? ーーーー scp -p1022 -r /Desktop/sample hogehoge@[サーバのIPアドレス]:/www/html/hoge/wp-content/plugins/ ーーーー 例えばwwwの記述は不要とか考えられますでしょうか?
ynakano

2016/12/08 03:48

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

2016/12/08 04:00

ありがとうございます。 “P”を大文字にしたのですが、やはりダメでした。 ーーーーー scp -P 1022 -r~/Desktop/sample hogehoge@[サーバのIPアドレス]:/www/html/hoge/wp-content/plugins/ ーーーーー 入力は間違っていないと思うのですが・・・
ynakano

2016/12/08 04:06

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

2016/12/08 04: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
ynakano

2016/12/08 04: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が出ている以上はオプションか引数のミスです。
akkkkin

2016/12/08 04:41

回答ありがとうございます。 <port>はサーバーのポートでいいのでしょうか? また、sudoを入力していないからはじかれる、ということはないでしょうか?
ynakano

2016/12/08 04:43

<port>は接続先ポート番号です。 今回の場合は1022ですよね。 scpのusageが出るならsudoは関係ないはずです。 ※というか試してみた方が早くないですか?
akkkkin

2016/12/08 04:58 編集

回答ありがとうございます。 ><port>は接続先ポート番号です。 接続先というのはディレクトリの移行先のサーバーのことでいいのでしょうか? ※デスクトップのフォルダをさくらVPSにアップロードする場合だとさくらVPSのポートが接続先ポート番号だとすればあっているのですが・・・ >scpのusageが出るならsudoは関係ないはずです。 承知しました。試したのですが、もしや記載順序が違っていたらとおもい質問しました。言葉足らずでした。
ynakano

2016/12/08 05:08

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

2016/12/08 07: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 に変わりました。 文法エラーなので、ポート番号とかパスの記載以前の問題かと。
akkkkin

2016/12/08 07:24

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

2016/12/08 07:30

チルダ記号はLinux/Unixでは「ホームディレクトリ」という意味で、パスとして解釈してくれます。 単に"~"ならカレントユーザのホームディレクトリ、"~<username>"で指定したユーザ名のホームディレクトリという意味になります。 いずれにせよscpの"-r"オプションの後にスペースは必要ですね。 テストの意味で、例えばローカルの"/tmp/aaa.txt"をリモートの"/tmp"配下にscpしてみたらどうですか。 この場合、以下のコマンドで済むはずです。 scp -P 1022 /tmp/aaa.txt hogehoge@<ip>:/tmp/. scpやポートの問題なのか、他の問題か切り分けていくしかないです。
hotta

2016/12/08 08:10

> 皆さんはファイルが入ったPCのローカルにあるフォルダをサーバー >(例えばさくらVPS)にアップロードしたい場合はどのように >コマンドを叩かれていらっしゃるのでしょうか? 手元の環境が Windows であれば、WINSCP というファイル 転送用の GUI ツールがあります。手元が Linux であれば rsync というディレクトリ同期ツールもあります。さらに、今の流行り で言えば git/github かもしれません。 いずれにせよ、アップロード先の OS が Linux の場合、ssh/scp は避けては通れません。winscp / rsync / git も、認証機能としては 事実上 ssh/scp と同じものを使うことがほとんどでしょうから、 今試そうとしている scp が無事に開通した後の応用問題となります。
akkkkin

2016/12/12 00:34

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問