遠隔地の複数台RaspberryPiにアクセスする方法について

---------------------------------------------------------------------------



遠隔地の複数台のRaspberryPiのアクセス方法について(現地=>遠隔地)
--------------------------------------------------------------------------------
現地からの調整、修正方法(ssh 及び ftp)
★ アクション方法
  ・FTPは遠隔地の1台目を使って2台目に、FTPコマンドを使って送受信する
  ・コンパイル、実行等は1台目からsshコマンドで接続して行う
  ・必要なファイル、データ等は1台目にWinSCP等で送っておく
★ 前提条件
    ・ssh 及び ftp がインストールされていること
    ・グローバルIpがわかっていること
   接続先のルータにてアドレス変換されていること
       TCPポート22-25 <--> 192.168.x.xxx TCPポート20-25
           または独自のSSHポートを -p xxxxxxで指定する
  ・2台目のローカルIpがわかっていること(不明でもOK:調べる)
	・[WinSCP]はrootで接続する(書き込みしない場合はuserレベルでも良い)
--------------------------------------------------------------------------------
具体的な操作
--------------------------------------------------------------------------------
------- 1台目に接続しsshにて2台目に接続

@ [TeraTerm]にて1台目のマシン"xxx.xxxxxx.jp"に接続する
    user:xxxxx p/w:yyyyy

 (1) 2台目のローカルIPを確認する(私の場合は指定場所に書き込んである)
     # "cat /ramdisk/local_ip_xxxx"にてローカルIPを確認する

   不明の場合は以下の操作で調べる。
         # ping 192.168.x.255 -b         <= いちどブロードキャストIP宛(xxx.xxx.xxx.255)に
                      ping実行をすれば,稼動中の機器を参照することが可能

            WARNING: pinging broadcast address
            PING 192.168.0.255 (192.168.0.255) 56(84) bytes of data.
            64 bytes from 192.168.x.xxx: icmp_req=1 ttl=255 time=1.86 ms
            64 bytes from 192.168.x.xxx: icmp_req=1 ttl=64 time=2.83 ms (DUP!)
            64 bytes from 192.168.x.xxx: icmp_req=1 ttl=64 time=48.0 ms (DUP!)
            64 bytes from 192.168.x.xxx: icmp_req=1 ttl=64 time=48.0 ms (DUP!)
            64 bytes from 192.168.x.xxx: icmp_req=1 ttl=64 time=48.0 ms (DUP!)
            64 bytes from 192.168.x.xxx: icmp_req=1 ttl=64 time=48.4 ms (DUP!)
            64 bytes from 192.168.x.xxx: icmp_req=1 ttl=64 time=48.4 ms (DUP!)

         # arp -a
            ? (192.168.x.xxx) at xx:xx:xx:xx:xx:xx [ether] on ethx
            ? (192.168.x.xxx) at xx:xx:xx:xx:xx:xx [ether] on ethx
            ? (192.168.x.xxx) at xx:xx:xx:xx:xx:xx [ether] on ethx
            ? (192.168.x.xxx) at xx:xx:xx:xx:xx:xx [ether] on ethx
            ? (192.168.x.xxx) at xx:xx:xx:xx:xx:xx [ether] on ethx
            ? (192.168.x.xxx) at xx:xx:xx:xx:xx:xx [ether] on ethx


 (2) 2台目のマシンにsshコマンドにて接続する(USER-ID、passwordを入力する)
    # ssh 192.168.x.xxxx
    (# shh 192.168.x.xxxx -p yyyy)
        user:xxxxx p/w:yyyyy

        Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
        permitted by applicable law.
        root@pi-xxx:~#
 (3) ディレクトリに移動する
     # cd /home/xxxx/yyyy

------- FTP操作の準備で1台目に[WinSCP]で接続する

A [WinSCP]にて1台目に接続しておく

------- 新たに1台目に接続しFTPを実行する

B 新たに[TeraTerm]を立ち上げ1台目"xxx.xxxxxx.jp"に接続する
    user:xxxxx p/w:yyyyy
 (1) # "cd /home/pi
 (2) # "ftp 192.168.x.xxx"
     Connected to 192.168.x.xxx.
     220 (vsFTPd 2.3.5)
     Name (192.168.x.xxx:nnnn): nnnn
     331 Please specify the password.
     Password:
     230 Login successful.
     Remote system type is UNIX.
     Using binary mode to transfer files.
     ftp>

     ftp>pwd                <--- ターゲット(192.168.x.xxx)のpwd実施
     ftp>ls -l              <--- ターゲット(192.168.x.xxx)のls実施
     ftp>!ls -l             <--- 自分(192.168.x.yyy)のls実施
     ftp>cd ddd             <--- ターゲット(192.168.x.xxx)のcd実施
     ftp>!cd ddd            <--- 自分(192.168.x.yyy)のcd実施
     ftp>get camera.dat  <--- ファイル"camera.dat"を読み込む
     ftp>get camera.cpp  <--- ファイル"camera.cpp"を読み込む
     ftp>put camera.dat  <--- ファイル"camera.dat"を書き込む
     ftp>put camera.cpp  <--- ファイル"camera.cpp"を書き込む
     
注意:putにて"553 Could not create file."が出た場合は上記@にてパーミッションの設定を行う
(# chmod 775 xxxx)

 (3) WinSCPにてPCにgetしたファイルを読み込み、秀丸エディタ等で修正する

   (直接WinSCPに表示しているファイルを秀丸エディタで修正も可)
 (4) ftp>"put  camera.dat" <--- ファイル"camera.dat"を読み込む

   @の[TeraTerm]にて、ps axコマンド、makeコマンド等を行ってデバッグ等を行う