【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

TCP/IPアレルギー撲滅ドリル【番外編】 第9回

軽快なscpか高機能なsftp、sshサーバに向いているのは?

福永勇二
インタラクティブリサーチ
2006/6/27

 sshファイル転送2つの方法、scpとsftp

 
scpの特徴は?
 

 図1はscpが動いているときのイメージを図にしたものです。利用者がサーバにあるファイルを取り出す指定をすると、scpのクライアントプログラムはsshサーバに接続して、「『自分あてにファイルを送る』コマンドを起動しなさい」という命令を送ります。

図1 scpの利用イメージ

  命令を受け取ったsshサーバは、シェルと呼ばれるプログラムを起動し、そのシェルが「sshの通信路を使ってファイルを送り返す」プログラムを起動します。これにはscpという名前のプログラムを使います。プロトコルと同じ名前が付いたプログラムです。

  このscpは指定のファイルを読み出して、同じ通信路に流し込みます。するとそのデータはscpクライアントに届きます。scpクライアントはこれを保存してゆくことで、ファイル転送を実現します。

  このときscpクライアントプログラムとsshサーバプログラムの間は、sshによる通信路を使っていますので、誰かに盗聴されても内容は分かりませんし、改ざんすることもできません。またsshの接続をするときに正しいサーバか、正しいユーザーかを確認しますので、なりすましも防ぐことができます。つまり、安全にファイル転送ができたことになります。

  ちなみにscpのプロトコルは、rcpという暗号化機能のないファイル転送用のプロトコルがベースになっています。これをsshの安全な通信路でやりとりすることで、安全なファイル転送を実現しています。

 
「UNIXスタイルのシェルで動かす」って何ですか?
 

 シェルは、UNIX系のシステムで使われている、コマンド処理プログラムのことです。Windowsでいうところの「コマンドプロンプト」に相当するものと考えると分かりやすいでしょう。ちなみに「コマンドプロンプト」とシェルを比べると、コマンドの種類はもちろん、その書き方も違います。このシェルを使うのはscpの特徴の1つです。

 
sftpの特徴は?
 

 ではsftpはどうでしょうか? sftpが動いているときのイメージを図2に示します。

図2 sftpの利用イメージ

  利用者がサーバにあるファイルを取り出す指定をすると、sftpのクライアントプログラムはsshサーバに接続して、「sftpサーバを起動して接続しない」という命令を送ります。

  命令を受け取ったsshサーバは、sftpサーバプログラムを起動して、クライアントとの間に通信路を準備します。

  この後、クライアントはsftpサーバに対して、sftpのコマンドを送り、必要なファイルを取り出します。コマンドには「ファイルを開く」「ファイルを閉じる」「ファイルを読み出す」「ファイルを書き込み」といったものがあります。

 
ファイル転送を途中で止められるsftp
 

  sftpでは、通信路をつないだ後に、コマンドを送るスタイルを取っていますので、1つのコマンドが終わった後に、次のコマンドを送ることができます。そのため、ファイル転送を途中で止めたり、途中から再開したり、ファイル転送をいろいろとコントロールできる特徴があります。

  sftpの場合も同様に、sftpクライアントプログラムとsshサーバプログラムの間は、sshによる通信路を使っていますので、盗聴などの心配はありません。

 軽快さをウリにするscp、高機能をウリにするsftp

 
scpとsftpの違いを一目で見たいのですが
 

 表1にscpとsftpの特徴を比較してみました。この表はWinSCPのWebページにある比較表を参照して、主要部分を抜き出して日本語化、また一部追記したものです。薄緑の背景は、一般的に考えて優れていると思われる方を表しています。

項目 scp sftp
速度 パケットの確認をしないので、速いことが多い。ただし確認しないことによる問題が発生することがある パケットの確認をするので、遅いことが多い。新しいバージョンでは改善されている
転送の再開 できない できる
大きなファイルの扱い 4GBを超えるファイルを取り扱えない 4GBを超えるファイルでも取り扱える
転送の中止 通信そのものを中断することで中止する 通信を維持したまま転送を中止できる。中止した後は、次のコマンドが送れる
ファイル名の変更 できる できる
ファイルの複製 できる できない
コマンド実行 できる できない
サーバの環境 UNIXスタイルのシェルがあることを想定している UNIXスタイルのシェルは不要
新旧でいうと…… どちらかというと古い どちらかというと新しい
特徴を一言でいうと…… シンプルで軽快 高機能だがやや重い
表1 scpとsftpの比較 (参照) http://winscp.net/eng/docs/protocols
※一般的に考えて、優れていたり汎用的と思われる方の背景色を薄緑にしています。どちらも同様の機能を備える項目、またその項目が短所長所の両面を持っていて甲乙つけ難いものは両方の背景を薄緑にしています

  発表時期はscpの方が古いのですが、特徴を比較する限りは、どちらか一方がずばぬけて優れているというわけではないようです。人によって見方は違うかもしれませんが、一言でいうなら軽快さをウリにするscp、高機能をウリにするsftp、といったところです。

  興味深いのは、サーバの環境です。scpはサーバにUNIXスタイルのシェルを備えている必要があります。それに対してsftpはUNIXスタイルのシェルは不要です。さまざまなOSへの対応のしやすさはsftpに軍配が上がるようです。

  また大きなファイルを取り扱う必要があるときにはscpでは対応できないことも起こり得ますので注意が必要です。


 
すべてのsshサーバがscpとsftpに対応しますか?
 

 sshサーバにはフリーで配布されているものと商品として販売されているものがあります。フリーで配布されている代表的なsshサーバ「OpenSSH」については、scpとsftpの両方の機能を持っています。一方、市販品のsshサーバの中には、sftpにのみ対応し、scpには対応していないものもあるので注意が必要です。

 
sshバージョン1や2との組み合わせは?
 

 sshのプロトコルには大きく2種類あります。それぞれバージョン1、バージョン2と呼びます。sshバージョン1はいくつか問題点が見つかり、使われない方向にありますが、まだ使われています。

  scpはsshバージョン1対応のプログラムの一部として、sftpはsshバージョン2対応のプログラムの一部として発表されました。しかしながら、sshバージョン1とsftpを組み合わせて使うことも、sshバージョン2とscpを組み合わせて使うこともできます。

 
代表的なクライアントは?
 

 Windowsで利用できる代表的なクライアントプログラムでは、何といっても「WinSCP」が有名です。WinSCPはhttp://winscp.net/eng/docs/lang:jpからダウンロードできます。WinSCPでは、転送プロトコルとしてscp、sftpの両方に対応しています。またsshのバージョンに関しても、バージョン1と2の両方に対応します。画面1は、これらの情報登録画面で、ホスト名やユーザー名などともに、使用するプロトコルを指定しているところです。「sftpが使えないときにはscpを使う」という設定も可能です。

表1 WinSCPの設定画面



安全なファイル転送とは

目次
  安全なファイル転送とは 安全なファイル転送って何ですか?/安全に行うにはどうするのでしょうか?/sshとファイル転送/sshはリモートコンソールではないのですか?sshのファイル転送は1種類だけですか?
軽快さをウリにするscp、高機能をウリにするsftp scpの特徴は?/「UNIXスタイルのシェルで動かす」って何ですか?/sftpの特徴は?/ファイル転送を途中で止められるsftp/scpとsftpの違いを一目で見たいのですが/すべてのsshサーバがscpとsftpに対応しますか?/sshバージョン1や2との組み合わせは?/代表的なクライアントは?
関連リンク
  連載:インターネット・プロトコル詳説




「Master of IP Network総合インデックス」

ホワイトペーパーTechTargetジャパン

Master of IP Network フォーラム 新着記事
  • どこまで出る? LTEの通信速度 (2010/3/17)
     光ファイバに匹敵する通信速度を実現すると期待されているLTE。ホントにそんなに出るの? という疑問に答えます
  • インターネット世界の地図 (2010/2/23)
     荷物の届け先まではどの道を通っていけばいいのでしょう? それを決める「経路選択」の仕組みを説明します
  • Androidアプリはビジネスになるのか (2010/2/12)
     「iPhoneアプリの次はAndroid?!」NECビッグローブのAndroidアプリ販売サイト「andronavi」を通して、その可能性に迫る
  • 知られざるLTEのネットワーク構成 (2010/1/13)
     LTEのネットワーク構成やプロトコルスタックを詳解。それぞれどんな役割を果たしているかを解説します

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?