Unit Aとインターネットにつながった手元の端末でデータを転送する方法

手順を動画でも解説しています。

Unit Aとインターネットにつながった手元の端末でデータを転送するにはSCPもしくはSFTPが利用可能です。

接続先の情報はUnit A の接続方法のうち、SSHを用いる場合と共通になります。

プロトコル

SFTPもしくはSCP

アドレス

sshgw3.megabank.tohoku.ac.jp

ポート番号

50022

ユーザー名

プロジェクトメンバアカウント

ファイル転送ソフトウェアを使う

WinSCPCyberduckなどのSFTPもしくはSCPに対応したクライアントソフトでデータ転送が可能です。ここではWinSCPを例に紹介します。

  1. ログイン画面で接続情報を入力します。

    ../_images/winscp-1.png

    転送プロトコルはSFTPを選択します。

  2. 初回接続時は次のような画面が表示されるので、「はい」を選択します。

    ../_images/winscp-2.png

    ヒント

    暗号鍵のフィンガープリントは、利用者・接続元ごとに異なる場合があります。

  3. 認証の途中でDuo Mobileに通知が届きます。「承認」ボタンを押して接続を続行します。

    ../_images/winscp-3.png
  4. Unit Aとの接続が完了します。

コマンドで送受信する

手順を動画でも解説しています。

Windowsをお使いの場合にはWindows TerminalでPowerShellを開いてください。Macをお使いの場合にはターミナルを開いてください。

scp

scpコマンドを使う場合は、次のコマンドを入力します。

手元のファイルを送る場合:

scp -P 50022 <送信元> [<送信元>...] <プロジェクトメンバアカウント>@sshgw3.megabank.tohoku.ac.jp:<送信先>
  • <送信元>には、送信するファイルへのパスを入力します。複数指定することができます。

  • <送信先>には、Unit A上に作成するファイル名や存在するディレクトリへのパスを指定します。省略した場合は、ホームディレクトリに同じ名前でファイルが作成されます。

  • ディレクトリごと送受信する場合は、-rオプションを追加します。

Unit Aからファイルをダウンロードする場合:

scp -P 50022 <プロジェクトメンバアカウント>@sshgw3.megabank.tohoku.ac.jp:<送信元> <受信先>

どちらの場合も、コマンド実行後にパスワードを求められるので入力します。入力後にDuo Mobileに通知が届きます。ご自身でコマンドを実行した直後であれば「承認」ボタンを押してください。

実行例

1$ scp -P 50022 data.txt project__personal-id@sshgw3.megabank.tohoku.ac.jp:
2The authenticity of host '[sshgw3.megabank.tohoku.ac.jp]:50022 ([130.34.166.11]:50022)' can't be established.
3ED25519 key fingerprint is SHA256:5J4HZt9O01pe87W/Ow/OqiMLdH8hOlxup+FWr03GSAU.
4This key is not known by any other names
5Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
6Warning: Permanently added '[sshgw3.megabank.tohoku.ac.jp]:50022' (ED25519) to the list of known hosts.
7(project__personal-id@sshgw3.megabank.tohoku.ac.jp) Password:
8data.txt                                      100%    9     0.3KB/s   00:00
1行目

scpコマンドの例

2-6行目

使用している端末からUnit Aに初めて接続する場合はこのように表示されます。 5行目で選択肢を訊かれるのでyesと入力します。

7行目

パスワードを求められるので入力します。入力後、Duo Mobileの承認を行います。

8行目

ファイルの転送が開始されます。

rsync

ヒント

Windows環境には、rsyncはインストールされていません。Windows環境の場合はWSLの使用を検討してください。

rsyncはより高機能なファイル送受信コマンドです。ファイルの指定方法はscpコマンドと同じです。

rsync -arv -e 'ssh -p 50022' <送信元> <プロジェクトメンバアカウント>@sshgw3.megabank.tohoku.ac.jp:<送信先>
rsync -arv -e 'ssh -p 50022' <プロジェクトメンバアカウント>@sshgw3.megabank.tohoku.ac.jp:<送信元> <受信先>

コマンド実行後にパスワードを求められるので入力します。入力後にDuo Mobileに通知が届きます。ご自身でコマンドを実行した直後であれば「承認」ボタンを押してください。

次に使用頻度の高いオプションを列挙します。詳細はrsyncドキュメントをご覧ください。

-a, --archive

元のパーミッションやグループなどを保持したまま同期

-v, --verbose

送受信中のファイル名を表示

-P, --progress

送受信の進捗を表示

-e, --rsh=COMMAND

接続に使うコマンドを指定

-r, --recursive

ディレクトリごと送受信する

-n, --dryrun

実際に送受信せず転送されるファイルの一覧を表示する

--exclude=PATTERN

送受信から除くファイルを指定する(ワイルドカードが使用可)

--include=PATTERN

--excludeに含まれるファイルからさらに除外しないものを指定

実行例

 1$ rsync -arv -e 'ssh -p 50022' data.txt project__personal-id@sshgw3.megabank.tohoku.ac.jp:
 2The authenticity of host '[sshgw3.megabank.tohoku.ac.jp]:50022 ([130.34.166.11]:50022)' can't be established.
 3ED25519 key fingerprint is SHA256:5J4HZt9O01pe87W/Ow/OqiMLdH8hOlxup+FWr03GSAU.
 4This key is not known by any other names
 5Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
 6Warning: Permanently added '[sshgw3.megabank.tohoku.ac.jp]:50022' (ED25519) to the list of known hosts.
 7(project__personal-id@sshgw3.megabank.tohoku.ac.jp) Password:
 8data.txt
 9
10sent 14,997,101 bytes  received 35 bytes  1,304,098.78 bytes/sec
11total size is 14,993,365  speedup is 1.00
1行目

rsyncコマンドの例

-vオプションがない場合は、8行目以降の進捗が表示されません。

2-6行目

使用している端末からUnit Aに初めて接続する場合はこのように表示されます。 5行目で選択肢を訊かれるのでyesと入力します。

7行目

パスワードを求められるので入力します。入力後、Duo Mobileの承認を行います。

8行目

転送中のファイルが表示されます。

10-11行目

転送が完了するとサマリーが表示されます。

設定ファイルで接続を簡略化する

設定ファイルにUnit Aの接続先を記述することで、sshコマンドによるログインや、scprsyncコマンドでの送受信時に接続先の入力を省略できるようになります。

  1. ホームディレクトリ(Windowsの場合はC:¥Users¥ユーザー名)に.sshという名前でディレクトリ(フォルダ)を作成します。

  2. .sshディレクトリの中にconfigというファイルを作成し、次の内容を保存します。

    Host tommo
        HostName sshgw3.megabank.tohoku.ac.jp
        Port 50022
        User <プロジェクトメンバアカウント>
    

    Hostに続くtommoには任意の設定名を指定します。

  3. Macをお使いの場合は、パーミッションを設定します。

    $ chmod 700 ~/.ssh
    $ chmod 600 ~/.ssh/config
    
  4. 2で指定した設定名を、各コマンドの接続先として使用できるようになります。

    ssh tommo
    scp <送信元> tommo:<送信先>
    rsync -v tommo:<送信元> <受信先>