いままでずっとMacのFTPのクライアントはCyberduck、
SCPのクライアントはFuguと棲み分けをしていたのだけど、
気づいたらCyberduckでもSCPを使えるようになっていた。
(上記の記述は正確ではないっぽいので、追記を見て下さい。
この記事のタイトルは「MacでSSHでファイル転送をGUIで操作したいならCyberduckでOK」というのが適切だと思う。
)
Cyberduck
http://cyberduck.ch/
Fugu
http://rsug.itd.umich.edu/software/fugu/
Fuguはさくさく動いていいのだけど、フォルダごと削除とかできないし、
ときどき単一のファイルでも削除ができなくなったりして、
若干不安定なところがあった。
Cyberduckはわりと多機能なのだし、
UIもシンプルで扱い易い。
あるときバージョンアップしてからすごく動作が不安定になったことがあって、
それからしばらくバージョンアップは敬遠していた。
今回、久々にCuyberduckをバージョンアップした。
CyberduckでSCPするにはSFTPという転送プロトコルを選べばよい。
単に気づいてなかっただけで、昔からSCPできたのか?
昔、まだWinを使っていた頃のFTPクライアントといえばFFFTPだったので、
それに慣れていたから、
最初、Cyberduckを使い始めたときは使いづらかった。
FFFTPは片方のウィンドウにローカルのファイルが、
もう片方にリモートのファイルが表示されるというインタフェースで、
それが個人的にはしっくり来ていた。
なので、窓の中にはリモートのファイルしかなくて、
デスクトップやFinderのウィンドウとの間でドラッグ&ドロップをする
Cyberduckの方式は使いづらかった。
その点、FuguはFFFTPと同じようなインタフェースだったので、
親しみが持てた。
Cyberduck方式は長いこと慣れなかったけど、
最近やっと違和感を感じなくなってきた。
追記:2013.4.6
はてブにて、「scpとsftp は違うだろ?な?」というコメントをいただきまして、「確かに。」と思った次第でございます。
ちろっとネットを探ってみましたがCyberduckはSCPに対応しているのかわかりません。ていうか、厳密には対応してないんだと思います。でもなんか実際の所、cyberduckでもできているような気がします。
というのは、SSH用のポートしか開放していない(はずの)サーバーに対してSFTP接続してつながるからです。SCPもSFTPもどっちもSSHで接続しているところは同じで、違いはファイルを移動する際のコマンドなので、その違いはCyberduckで吸収できちゃうのかもしれません。
SCPにしろ、SFTPにしろ、リモートのサーバーに対してSSH接続できるようになっていることが肝要です。
以下、ちょっと調べただけで間違ってるかもしれないないので、間違ってたらまたはてブとかTwitter( @melonsode )とかで知らせていただけるとありがたいです。
・SCPの場合、SSH接続とファイル転送操作は一行でやってしまう。
scp [オプション][転送したいファイル名][転送先のパス]
・SFTPは、まずSFTP接続を確立してから対話式にファイル転送操作をする。
% sftp username@www.example.comConnecting to www.example.com... username@www.example.com: sftp> _
SFTPの場合、上記のように接続を確立してからgetとかmgetとかputとかでファイル転送操作をする。
scpもsftpもどちらもシェルの機能で、大抵のシェルには備わっているのだと思う。先にも書いたけれど、SSH接続できることが肝要で、scpコマンドもsftpもどちらも対応しているからscpをやろうとして、実はsftpで繋いでいたとしてもやりたいことはできているっていうことだと思う。
思うに、上記のようなシェル・コマンドを使ってファイル転送をするのが苦手だったり面倒だったりする人がFuguやCyberduckを使うのであり、そういう人たちにとってやりたいことは、「GUIのインタフェースでサーバーにファイル転送したい!」ということであり、そんな時に「けど、SSHが絡むと普通のFTPクライアントだと対応していない!」という人のためにはFuguやCyberduckがおすすめということであります。
あ、それと大事なことがもう一つ。SFTPのデフォルトポートは22番だということになっているんですが、そのポートが開放されてないと接続できません。でも、SSHが使える状態であればSSH用のポート(デフォルトは25番)が開いているはずであり、SFTPの接続設定でポート番号をその番号(SSHのデフォルトは25番)を指定すればつながるはずです。
自分でも試してみましたが、Cyberduckでポート番号を22にするとつながらないけれど(当たり前)、ポート番号をSSHのために開放しているポート番号(デフォルトは25番)に変更したらちゃんとつながりました。
て、もしかしたらCyberduckでSFTPをつなぐときにつまずくのってそのポート番号の指定かもしれません。
と、ここまで書いた所で、こんな記事見つけました。もっときちんとした専門的知識を持った方が書かれているようで、僕のような生半可知識の人間が書いたものよりずっと信頼出来ると思います。
SFTPを使った安全なファイル転送 - SourceForge.JP Magazine
あ、ちなみにFTPSというものもあります。FTPSの暗号化はSSHによるものではなくSSLによるもので(HTTPとHTTPSの違いのようなもの)、SFTPとは全然別物です。CyberduckではFTP-SSLというのがそれにあたります。
SCPとSFTPとFTPSと、紛らわしいですね。