WinSCPでSSH秘密鍵を使って公開鍵認証でSFTP接続する方法

WinSCPはFTP・SFTP・FTPS接続できるFTPクライアントソフトですが、SSH接続にも対応しています。
サーバ側で用意したSSH公開鍵さえあれば接続できるので、そのやり方を解説していきます。
事前にSSHキーを用意しておくこと
SSH秘密鍵を使ったSFTP接続では、事前に接続先サーバーのSSH公開鍵が必要です。ですので、サーバー側でSSH公開鍵を発行しておき、SSHキーファイルをダウンロードしていつでも使える状態にしておきましょう。
SSH秘密鍵の作成方法は、使用しているWebサーバーソフトウェアやレンタルサーバーによって異なるので、それぞれマニュアルを見ながらSSH公開鍵を発行しましょう
SSH接続のやり方
それでは実際にSSH秘密鍵でSFTP接続する方法を見ていきましょう。
SSH公開鍵を使ってSSH秘密鍵を作成
ちなみに、今回はConoHa WINGというレンタルサーバーでSSH接続を解説しています。ポート番号など異なることがありますので、適宜説明に加えて行きます。

次に、通常であればこのままホスト名はユーザー名を入力していきますが、先にSSH秘密鍵を生成します。
![接続先リストの下にある[ツール]->[PuTTYgenを実行]をクリック](http://cdn2.aprico-media.com/production/imgs/images/000/047/004/original.png?1579762436)
次に[Load]をクリックし、サーバで発行したSSH公開鍵ファイルを開きます。
![[All Files]](http://cdn2.aprico-media.com/production/imgs/images/000/047/005/original.png?1579762438)
サーバーで作成した公開鍵ファイルの拡張子がpemだった場合は[All Files]に切り替えて探すと良いでしょう。
間違えて[Generate]を押してしまった場合はPuTTYgenを閉じて再度開くようにしましょう。キーペアの作成はかなり時間がかかるのでPuTTYgenを開き直したほうが早いです。

![[Save Private key]をクリックし、PuTTYフォーマットのSSH秘密鍵ファイルを保存](http://cdn2.aprico-media.com/production/imgs/images/000/047/007/original.png?1579762442)

パスフレーズが必要ないのであれば無視してSSH秘密鍵ファイルを保存してください。必要かどうかはレンタルサーバーの公式マニュアルなどに記載されています。
SSH秘密鍵を使ってSFTP接続
先程の作業で接続用のSSH秘密鍵が完成しました。あとは簡単です。

「転送プロトコル」は[SFTP]のまま変更しないでください。

![[設定]->[設定]をクリック](http://cdn2.aprico-media.com/production/imgs/images/000/047/011/original.png?1579762450)
![左メニューの[SSH]->[認証]を開く](http://cdn2.aprico-media.com/production/imgs/images/000/047/012/original.png?1579762452)
![「認証条件」の[秘密鍵]に先ほど作成して保存したSSH秘密鍵ファイルを指定](http://cdn2.aprico-media.com/production/imgs/images/000/047/013/original.png?1579762453)
指定したら画面したの[OK]を押して設定を完了してください。
![[保存]](http://cdn2.aprico-media.com/production/imgs/images/000/047/014/original.png?1579762455)
保存が完了したら作成した接続設定を利用してログインしてみましょう。

通常のFTP接続と比べると接続の初期設定が少し大変ですが、セキュリティは高めですのでSSHキーを使う場合はこの方法参考に試してみてください。
SSH秘密鍵を使ってSFTP接続する際の注意点

SSH秘密鍵を使ってSFTP接続するのはセキュリティー面で優れていますがいくつか注意しなければならないことがあります。
最後に注意点の方も見ていきましょう。
必ずSSH接続要件を確認しておく
レンタルサーバーを利用する場合、SSH接続に必要な情報が異なります。
- ホスト名
- ポート番号
- パスワードの有無
- SSH秘密鍵でのキーフレーズの有無
例えばConoHa WINGというレンタルサーバーだと、パスワードとキーフレーズを使わない接続となっています。
ホスト名やポート番号など何か一つの間違っていると、正しくSSH公開鍵・秘密鍵の設定をしたとしてもログインできないので気をつけましょう。
SSH秘密鍵は絶対流出させないように

何があってもssh秘密鍵を流出させてはいけません。ssh秘密鍵があればWebサーバーに不正アクセスできるため非常に危険な状態になります。
もし、sshキーを紛失した・誰かにコピー複製された可能性があるという場合は既存のsshキーを削除して無効化し、あらたにsshキーを発行するようにしましょう。
そうすることで不正アクセスによる被害を抑えることができます。