東京都府中市、九段下のWEB制作会社Maromaroのブログです

2016.05.30

Sasaki

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の場合

201605秘密鍵IMG01
秘密鍵の部分に作成した秘密鍵を指定します。

この時の形式はPutty形式の秘密鍵です。

Windows/Mac FileZillaの場合

201605秘密鍵IMG02
Windowsはputty形式

Macの場合はたしかOpenSSH形式だったと思います。

以上参考になりましたでしょうか。
秘密鍵の生成は難しくないかと思いますが、鍵の形式がある事を知らないと接続できなくて、はまってしまうかもしれません。
色々なSFTPソフトがあるかと思いますので、そのあたりを気を付けて頂ければと思います!