2016.05.30
SFTP接続時に使う鍵認証って何?
こんにちはMaromaro佐々木です。
今回はSFTP接続時に使う鍵認証についてお話できればと思います。
色々な方とやりとりをしていますと、この鍵認証というのがどうもよく理解されていないのではないか・・・と思っています。
鍵認証でSFTP接続するというのは、接続者(あなた)とサーバで秘密鍵と公開鍵を使って認証する仕組みを言います。
秘密鍵とか公開鍵ってなに? どこから持ってくるの・・・
秘密鍵の作成ですが、下記のようなソフトを使えば簡単に作成ができます。
Windowsの場合
下記サイトより「puttygen.exe」をダウンロードして実行
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Generateというボタンを押下して、その上のエリアでマウスをぐりぐりすると生成されます。
「Public key for pasting into Open SSH authorized_keys file:」と書いてあるのが公開鍵なので、これをサーバ管理者に渡してください。
生成された秘密鍵は「Save private key」で保存するのを忘れないようにしてください。
秘密鍵用のパスワードの設定を求められますが、空でも問題ありません。(なるべく設定した方が良いとは思いますが)
ただ、この際に保存される秘密鍵はPutty形式の秘密鍵のため(必要の場合もありますし、この秘密鍵があれば公開鍵もOpenSSH形式の鍵も生成できます)
上部にあるConversionsのメニューの中から「Export OpenSSH key」を選択して保存してください。
もしも秘密鍵が正しいのに接続ができない!といった場合には秘密鍵の形式がPutty形式かOpenSSH形式かで違っている可能性がありますので
参考にして頂ければと思います。
Macの場合
ssh-keygen
というコマンドを使うと生成できます。
秘密鍵用のパスワードの設定を求められますが、空でも問題ありません。(なるべく設定した方が良いとは思いますが)
デフォルトですと、ユーザーのディレクトリの「~/.ssh」の中に生成されるはずです。
「.pub」とついた方が公開鍵ですので、これをサーバ管理者に渡してください。
付いていない方が秘密鍵なので大事に取っておきましょう。(この時の鍵はOpenSSH形式です)
putty形式の鍵は下記のようなコマンドで変換します。
puttygen key.ppk -O private-openssh -o id_rsa
puttygenコマンドが無いと言われた場合には、ソフトが入っていない可能性がありますので
下記のようなコマンドでインストールしてみましょう。
brew install putty
秘密鍵は誰かが作成したものを利用する事もできますが、基本的には秘密鍵は秘密の鍵なので、
接続者が作成して、だれにも知られないようにしないと意味がありません。
鍵を使って早速接続・・・
Windows Winscpの場合
秘密鍵の部分に作成した秘密鍵を指定します。
この時の形式はPutty形式の秘密鍵です。
Windows/Mac FileZillaの場合
Windowsはputty形式
Macの場合はたしかOpenSSH形式だったと思います。
以上参考になりましたでしょうか。
秘密鍵の生成は難しくないかと思いますが、鍵の形式がある事を知らないと接続できなくて、はまってしまうかもしれません。
色々なSFTPソフトがあるかと思いますので、そのあたりを気を付けて頂ければと思います!