質問: 今までサーバ接続を行う際にFTP接続でしか対応したことがなく、今回初めてSFTP接続で対応することになりました。 そこでインターネットで色々調べたのですが、全然分かりません。。 公開鍵、秘密鍵、、などという言葉があったのですが、全然わかりません。。 そこでもし0から教えていただける方がいれば教えていただけるととても助かります。。 情報といたしましては、 ・PCはMacを使用しています。 ・IPアドレス、ユーザーIDはクライアントからいただいております。(パスワードはなしで大丈夫そうです。) ・「接続には、添付の秘密鍵ファイルをご利用ください」ということで、『.ppkファイル』がクライアントから送られてきました。 ・サーバ接続にはcyberduckを使用しています。 もしその他情報が必要であれば情報追加させていただきますので、コメントしていただけたら幸いです。。 よろしくお願い致します。。
回答: SFTPはSSHを用いてファイル転送を行うプロトコルです。なのでSFTPの仕組みが知りたければSSHを理解しなければなりません。 sshとは・・・ (Wikipediaからコピペ) > > Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。 > > > FTPを平文で通信を行うため、インターネット越しに使ってしまうとその通信が盗聴されていればユーザ名やパスワードが漏れ、誰でも簡単にそのサーバにアクセスすることが可能となります。 対してSFTP(SSH)を使うと通信が暗号化されるため、もし盗聴されてしまっていてもユーザ名・パスワードは漏れにくくなります。 FTPはユーザ名、パスワードがあれば接続できます。それに対してSSHには複数の認証方法があります。 1. パスワード認証 その名の通り、ユーザ名とパスワードを用いて認証を行う方法です。通信は暗号化されているのですが、別の経路からユーザ名・パスワードが漏れると簡単に侵入されてしまい危険です。 2. 公開鍵認証 鍵をサーバとクライアントに用意し、その鍵とユーザ名、パスワード(今回は必要ないみたいですね)を使って認証を行う方法です。秘密鍵ファイル(.ppk)を持つ端末しか認証が通らないため、非常に強力です。 今回、クライアント様から秘密鍵ファイルを渡されたということは、2の方法で認証を通すことになります。本来は公開鍵・秘密鍵をクライアント側が生成し、サーバに公開鍵を登録しなければなりませんが、その作業はクライアント様がやってくださっていると思います。 以下、Cyberduckで公開鍵認証を使ってSFTPでファイルをやり取りする方法です。 1. Cyberduckを起動し、左上の「新規接続」をクリック 2. プロトコルを「SFTP」に変更し、「サーバ」にドメイン名(またはIPアドレス)、「ポート」は指定がなければそのまま、「ユーザ名」に指定のユーザ名を入力する。今回は「パスワード」は空でOK。 3. 最下部にある「詳細設定」をクリックし、「公開鍵認証を使用する」にチェックを入れ、秘密鍵ファイル(.ppk)を指定する。 4. 接続する。 恐らくこれで接続できます。 追記 over様のおっしゃる通り、Cyberduckでppkが扱えない可能性があるようです。鍵を変換するか、OpenSSH形式の鍵を新たにクライアント様から作っていただく必要があります。 homebrewをインストールされていれば、Windowsを使わずに以下のコマンドで変換することができます。 ``` $ brew install putty $ puttygen 秘密鍵までのパス/秘密鍵ファイル.ppk -O private-openssh -o /鍵を置きたいところまでのパス(デスクトップとか)/id_rsa ```