UNIX 環境でのSCP/SFTPの利用

暗号化することにより安全に通信できるものとして、 SSH(Secure SHell)があります。 SSHを利用してファイルをコピーするSCP(Secure Copy)という方法があります。

UNIX 環境でSCPを利用するには、「sftp(Secure file transfer program)コマンド」を実行します。 sftpはftpクライアントに似たインターフェイスを持っています。 ここではsftpコマンドの利用方法について説明します。

コマンド名コマンド名
(暗号化)
用途
FTPSFTPファイルを遠隔のコンピュータに送るコマンド
RCPSCP遠隔のコンピューターに対して、こちら側のコンピュータ ーからファイルをコピーするコマンド
TELNETSSH遠隔のコンピューターにログインして、遠隔操作するコマンド



●リモートホストへのログイン

リモートホスト「host.example.com」にユーザ 「who」がログインする実行例を示します。

はじめてログインホストに接続する際に、 接続の確認メッセージが表示されるので「yes」と入力します。 接続に成功するとパスワードを聞かれるので入力し、ログインします。

% sftp who@host.example.com <RET>
Connecting to host.example.com...
who@host.example.com's password:_
sftp> _

sftpコマンドは次のような書式で利用します。

% sftp [オプション] [ログイン名]@[ホスト名] <RET>

●SCPでのディレクトリ操作

lsコマンドとcdコマンドを利用することにより、 リモートホストのディレクトリ操作を行えます。

●SFTPでのディレクトリ操作

リモートホストでのディレクトリ操作

lsコマンドとcdコマンドを利用することにより、 リモートホストのディレクトリ操作を行えます。

% ls カレントディレクトリに存在するファイルの一覧の表示

% cd リモートホストのディレクトリを移動

ローカルホストでのディレクトリ操作

llsコマンドとlcdコマンドを利用することにより、 ローカルホストのディレクトリ操作を行えます。 コマンドの頭文字の「l」はLocalの略です。

% lls 作業ディレクトリ内のファイル・ディレクトリ一覧を表示

% lcd ローカルホストの作業ディレクトリを変更

次にlsコマンドとllsコマンドの実行例を示します。

sftp> ls <RET>
drwxr-xr-x    2 who 53       512 Mar  7 19:17 .
drwxr-xr-x   69 who 53      7680 Mar  7 21:18 ..
-rwxr-xr-x    1 who 53       686 Mar  7 19:10 a.out
-rw-r--r--    1 who 53        89 Mar  7 19:09 hello.c
sftp> lls <RET>
test.log

●SFTPでのファイル転送

リモートホストからのファイル転送

単独ファイルにはgetコマンド、 複数個のファイルにはmgetコマンドを利用することにより、 リモートホストからのファイル転送が行えます。

% get [ファイル名]

% mget *

ローカルホストからのファイル転送

単独ファイルにはputコマンド、 複数個のファイルにはmputコマンドを利用することにより、 ローカルホストからのファイル転送が行えます。

% put [ファイル名]

% mput *

mputコマンドとmgetコマンドはメタキャラクタを利用できるので、 「*.tex」や「kadai?.tex」などのように ファイル名を指定することで複数のファイルを同時に転送できます。

次にgetコマンドの実行例を示します。

sftp> get hello.c <RET>
Fetching /auto/mnt28/home2/who/hello.c to hello.c
sftp> lls <RET>
test.log hello.c

注意:これらのコマンドは、 同じ名前のファイルが存在する場合、警告なしに上書きします。 予め転送するファイルと同じ名前のファイルがないことを確認してください。

●SFTPでの終了

SFTPを終了する場合は「quitコマンド」を実行します。

sftp> quit <RET>
% _

戻   る