windowsとlinux間でのファイルのやりとりについて

解決済

回答 7

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 11K+

dko5ki23t

score 9

先日初めて仮想マシンをインストールしました。
VirtualBoxにDebianをいれました。
そして諸々の設定を完了させ、一通りちゃんと動くようにはなっています。


今、winSCPというソフトを使ってwindowsとlinux間でファイルの転送ができるようにしようと奮闘しているのですが、どうしても接続できません。
ちなみにSSHを使って接続しようとしています。


ネットでいろいろ調べて以下のことはしました。
1.linux側にsshをインストール
2./etc/network/interfacesを編集してIPアドレスを固定
3.virtualboxの設定でポートフォワーディング機能を使って22番ポートを使えるようにした(?)
4.windowsファイアウォールで詳細設定→受信の規則→新しい規則→ポートフォワーディングで設定したゲストポートを開放する


2で固定したIPアドレスで接続しようとするとタイムアウトになり、調べると、それはIPアドレスが見つからないときに起こるエラーだと知り(eth0のIPアドレスを固定しました)、
ifconfigコマンドで出力されたloと書いてあるローカル接続用(?)のIPアドレスを使って接続すると接続が拒否されました。


winSCPでは転送プロトコルはSFTP、ホスト名にIPアドレス、ユーザ名にrootでないアカウントを使って接続しようとしています。


使っているのはWindows7、VirtualBox4.3.26、WinSCP5.7.2です。
本当に行き詰ってしまって困っています。
長々とした文章で読みにくいかもしれませんが、回答のほどよろしくお願いしたします。

<追記>
/etc/network/interfacesの中身
# file describes network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
  address  192.168.0.123
  netmask  255.255.255.0
  gateway  192.168.0.1

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 7

checkベストアンサー

+2

了解です。
VirtualBoxへのpingは通って外部のIPアドレスへのpingが通らないのは不可解ですが、VirtualBoxへのpingが通るのでしたら、WindowsからDebianにアクセスすることは可能です。

ポートフォワーディングの設定は済んでおられますか?ホストポートに任意の数値を(できれば49152〜65535の範囲で)、ゲストポートに22を設定すると完了です。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/04/27 14:47

    65500という値でやってみたらすんなりと接続できました!
    値が小さいと(49000台とか)接続できなかったりするんですかね...?
    ともかく、長い間お付き合いくださりありがとうございました!

    キャンセル

+1

> windowsとlinux間でファイルの転送
ファイルを転送せずに フォルダの共有設定をすれば、
そのフォルダに置いたファイルは ホストOS(多分 windows), linux のどちらかでも
参照や編集が可能になります。

scp でのファイル転送にこだわらなえらば、共有設定してしまったほうが、簡単とおもいます。
(ホストOS からアクセスができれば、あとは 自由に他のマシンへの転送などもできるはず)

参考:
  • 検索結果
VirtualBox 共有フォルダー設定 http://pc-karuma.net/virtualbox-folder-share/

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/04/26 21:27

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

    確かにその方法のほうが簡単にできそうですね!
    早速試そうと思います!
    でも、WinSCPを使うやり方も意地で続けようかななんて思ってます

    キャンセル

+1

VirtualBoxのネットワーク設定で、【割り当て】が「NAT」になっていないでしょうか?
これを「ブリッジアダプター」に変更することで、WindowsとDebianが同一ネットワーク上に存在するようになり、互いにやり取りができるようになると思います。

手順は次のようになります。
1. VirtualBoxのネットワーク設定で、【割り当て】を「ブリッジアダプター」に変更する。
2. /etc/network/interfacesの、固定IPアドレスに関する設定を削除する。
3. 設定を反映させるために、ネットワークを再起動する。
$ sudo /sbin/ifdown eth0
$ sudo /sbin/ifup eth0
4. DebianのIPアドレスを確認する。
5. winSCPで、WindowsからDebianにアクセスする。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/04/26 21:32

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

    ブリッジアダプターの方法もネットを見ている中ででてきましたが、今回はポートフォワーディングを使ってやりたいと思ってまして...
    もちろんこの方法も試してみます!
    わがままですみません

    キャンセル

  • 2015/04/26 22:15

    了解です。

    NATは、Windows宛のパケットをDebianに送る仕組みです。

    ポートフォワーディング機能で、ゲストポートに22を、ホストポートに任意の値を設定されたかと思います。
    winSCPの設定で、ホスト名に「localhost」を、ポート番号に、任意に設定したポート番号を入力したのち、ユーザー名とパスワードを入力してログインしてみてください。

    キャンセル

  • 2015/04/26 23:28

    勘違いしていました。すみません…。
    Windows宛のパケットをDebianに送る仕組みは、NATではなくポートフォワーディングです。

    キャンセル

+1

winSCPを使うことが目的ではなく、ファイルをやりとりすることが目的であるなら、Guest AdditionsをLinux側にインストールする方が手っ取り早いと思います。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+1

ネットワークアダプターのモードを「NAT」にすると、VirtualBoxは、一つのネットワークを生成します。
生成されるネットワークは、VirtualBoxと、ゲストOSとの間で情報をやり取りするためだけに存在する、小さなネットワークです。
このネットワークに、他のノードが参加することはできません。
(ノードというのは、ネットワーク内に存在する各機器のことです。ノードは一つのIPアドレスを持ちます。VirtualBoxの生成するネットワークには、VirtualBoxとゲストOSの、2つのノードが存在します)

ゲストOSは、VirtualBoxの生成した小さなネットワークにのみ参加できます。
他のネットワークに参加することはできません。
そして、インターネットはネットワークです。
つまりゲストOSは、インターネットにも参加できないことになります。

ゲストOSがどのようにしてインターネットに接続するかというと、VirtualBoxを介して行います。
ゲストOSと唯一、情報のやり取りができるVirtualBoxに、インターネットへの接続を依頼するわけです。

例えるなら、B君しか友達のいないA君と、クラス内の全員が友達のB君のようなものです。
A君はB君としか話せませんが、B君はクラス内の全員と話すことができます。
もしA君が、C君にどうしても伝えたいことがあるとき、まずB君に伝え、それからC君に伝えます。
B君が仲介してくれるわけです。

このように、仲介してくれる存在のことを、ネットワークでは「デフォルトゲートウェイ」といいます。

A君がゲストOS、B君がVirtualBoxですので、ゲストOSのデフォルトゲートウェイはVirtualBoxです。
したがって、ゲストOSで設定するデフォルトゲートウェイのIPアドレスは、VirtualBoxに割り振られたIPアドレスにします。

VirtualBoxで生成される小さなネットワークの、2つのノードに振られるIPアドレスは決まっています。
VirtualBoxには「10.0.2.2」が与えられ、ゲストOSには「10.0.2.15」が与えられます。
つまり、ゲストOSでの設定は、固定IPアドレスを「10.0.2.15」に、デフォルトゲートウェイを「10.0.2.2」にします。
サブネットマスクは255.255.255.0です。

つまり、/etc/network/interfacesの設定は次のようにします。
allow-hotplug eth0
iface eth0 inet static 
  address 10.0.2.15
  netmask 255.255.255.0
  gateway 10.0.2.2
これらの設定は、VirtualBoxのDHCPプロトコルにより自動で設定されるので、次の2行に書き換えるのがより良い設定です。
allow-hotplug eth0
iface eth0 inet dhcp
設定を反映させるために再起動し、ゲストOSから「192.168.0.1」にpingが通るか確認します。
これは、デフォルトゲートウェイを通して外部とやり取りできるかを確認する作業です。
もし通ったなら、残すはポートフォワーディングの設定のみとなります。

ホストポートに任意の数値を、ゲストポートに22を設定します。
そして、WinSCPでホスト名を「localhost」に、ポート番号を任意の数値に設定し、ユーザー名とパスワードを入力してログインします。
これで、ゲストOSにアクセスできると思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/04/27 13:09

    わかりやすい回答ありがとうございます!

    やってみたのですが、pingコマンドで何も返ってこないです...
    ポートフォワーディング設定もきちんとしているはずなのですが...

    キャンセル

+1

家庭内LANのデフォルトゲートウェイIPアドレス(つまりはルーターを指し示すIPアドレス)は192.168.0.1であっていますか?それとも192.168.0.5ですか?
Windowsのブラウザのアドレス入力欄にこの2つのIPアドレスを入力し、ルーターの設定画面が表示されるのはどちらかを教えてほしいです。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/04/27 13:45

    Windowsを外出先で使用しています。
    Windowsではネットに正常につなげています。

    ゲストOSからpingを飛ばしてもまったく応答がない状態です。
    (関係ないかもしれませんが)ifconfigコマンドでeth0もローカルもUPやRUNNINGがでているので起動はしてると思うのですが...

    キャンセル

  • 2015/04/27 13:51

    VirtualBoxへのpingは通りますか?
    IPアドレスは10.0.2.2です。
    もし通らなければ、VirtualBoxのネットワーク設定で、【ケーブル接続】にチェックが入っているかどうかを確認してください。

    キャンセル

  • 2015/04/27 13:58

    VirtualBoxへのpingは通ります!

    キャンセル

0

2点ほど

・別の SSH クライアントを使ってシェルに接続できるか試しましたか?
 (puttyなりPoderosaなりTeratermなり)

winSCPでは転送プロトコルはSFTP、ホスト名にIPアドレス、ユーザ名にrootでないアカウントを使って接続しようとしています。
・標準のSSHでのファイル転送はSFTPではなくSCPを使う必要があります。
  SFTPでファイルを送りたい場合、SFTPサーバの設定が必要です。
  SCP,SFTP,FTPSの違い

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/04/27 11:24

    NATにしてます。
    ゲートウェイの指定が間違っているというのはどういうことでしょうか?
    追記で固定IPアドレスにしたときのファイルの内容を載せてみたので教えていただけると幸いです。

    キャンセル

  • 2015/04/27 11:57

    実際のネットワークを見ないとどのように指定すればいいかは不明ですが、
    ホストOSから見たネットワークアダプタのIPがゲートウェイのアドレスに
    なるわけではないというのではまった記憶があります。

    http://www.nslabs.jp/linux-nat-on-vmware.rhtml
    http://manchan-pc.blogspot.jp/2012/09/virtualboxpcnw.html

    一度DHCPに戻してrouteコマンドでゲートウェイのIP確認してみるとか・・・
    あと少し気になったのですが下記より固定しているIPは192.168.0.2ではないのでしょうか?
    >192.168.0.2 に ping を送信しています 32 バイトのデータ:

    キャンセル

  • 2015/04/27 12:49

    固定のIPアドレスはいろいろ変えて試してみたりもしてます

    DHCPに戻してrouteコマンドを試した結果下のようになりました
    カーネルIP経路テーブル
    受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数
    default 10.0.2.2 0.0.0.0 UG 0 0 0
    10.0.2.0 * 255.255.255.0 U 0 0 0
    link-local * 255.255.0.0 U 1000 0 0

    正直全然わからないです...

    キャンセル

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

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