株式会社 市民電子情報網 ▲戻る |
ホスティングパックでは Web コンテンツの更新のために、 FTP でのアップロード/ダウンロードに加えて SFTP でのアップロード/ダウンロードにも対応しております。
SFTP は ssh プロトコルの上を用いたファイル転送方法で、 認証やファイル転送におけるやりとりはすべて暗号化された通信路の上で 行われます。 これに対し、 FTP では FTPS (FTP over SSL/TLS) を用いない場合には 利用者認証もファイル転送も平文で通信が行われますため、 ネットワーク上での盗聴に対しては脆弱です。 このため、FTP に替えて FTPS または SFTP でのコンテンツ更新をお勧めいたします。
SFTP は 一般的には ssh 接続用ポート(TCP 22番ポート)を ssh/slogin の shell 接続、 scp によるファイルコピー等共用します。 しかしながら、ホスティングパックでのサービスでは SFTP のみを提供しており、 ssh/slogin によるシェル利用や scp によるファイルコピーには対応しておりません。
SFTP の認証には、サイト管理者が発行した FTP 利用可能なユーザー ID を用います。 サイト管理者の発行した「FTP」が利用可能な利用者 ID がそのまま SFTP での利用者 ID になります。
SFTP で利用できる認証方式はパスワード認証および公開鍵認証です。 パスワード認証には FTP で利用するのと同じパスワードを使用して下さい。 公開鍵認証での利用方法は後述いたします。
サーバホスト名: | サイトのドメイン名またはhp.poem.jp |
---|---|
通信ポート: | 22(標準のポートであるため、ほとんどのクライアントでは指定しなくて良い) |
ユーザ名: | 利用者ID(註1) |
パスワード: | 利用者パスワード |
認証方式: | パスワード認証または公開鍵認証(RSA鍵またはecdsa鍵;利用方法は後述) |
ホームディレクトリ: | / (Web コンテンツのドキュメントルートディレクトリ) |
サーバのフィンガープリント(註2): | 2048 SHA256:n7jAeDTKSxySCOxDKcchZSUu+EgasHsXXML90ey4lk4 no comment (RSA) 256 SHA256:EIFlBEC3mfS2FSs/k6x0scKRED9BTPvPmSOcs/qK9Xk no comment (ECDSA) |
のように接続するホスト名の前に「@」で区切って ユーザー名を指定する必要があることから、 「@」を含むユーザーIDの場合混乱しやすいですが、 たとえばユーザーIDが nonexist@no-debris.org である場合にはsftp <ユーザー名>@<ホスト名>
のように最後の「@」の前までがユーザーIDと見なされるため、 このように指定が可能です。sftp nonexist@no-debris.org@hp.poem.jp sftp nonexist@no-debris.org@no-debris.org
公開鍵認証では利用者が公開鍵暗号用鍵ペアを作成し、 鍵ペアのうち公開鍵をサーバーに認証用の鍵として登録することにより、 公開鍵によって暗号化された暗号文を利用者クライアントが秘密鍵を用いて 復号できることをもってして正当な利用者であることを証明する認証方式です。
ここではホスティングパックのSFTPサービスで公開鍵認証を用いるために、 公開鍵を登録する方法を説明いたします。 なお、ここで説明する登録方法はホスティングパックに固有のものであり、 他社のサービスやPOEMの提供する他のサービスでは異なる方法での登録が 必要になることでしょう。
ホスティングパックのSFTPサービスではサイトの path、 /.sftp/<利用者ID>/authorized_keys ファイルに公開鍵を RFC4716 形式で登録することで公開鍵認証による接続が 可能になります。以下、順を追って説明いたします
SFTPクライアントあるいはSSHクライアントソフトウェアの機能を用いて 認証に用いる鍵ペアを作成します。 ホスティングパックのSFTPで利用できる鍵の形式は DSA,RSAおよびECDSAです。 ED25519形式は未対応です。 またDSA形式は受け付けますが暗号強度に問題があるためお勧めしません。
なお、後でまた説明しますが、 公開鍵はRFC4716形式で登録する必要があります。
ホスティングパックサーバーにSFTP, FTPS, あるいは FTP で接続し、 接続した / ディレクトリのすぐ下に .sftp というディレクトリ(フォルダ)を作成します。 このディレクトリは Web サーバーからは直接アクセスできないように 保護されています (ただし、CGIやサーバーサイドスクリプトからのアクセスは可能です)。 このディレクトリのパーミッションは 0750 (ユーザー自身はフルアクセス可能、グループユーザーはディレクトリに 移動とファイル名の読み取りが可能、その他のユーザーはアクセス拒否)として 他のユーザーからアクセスされないようにします。
次に作成した /.sftp ディレクトリの下に、 公開鍵認証を行う利用者のユーザーIDと同じ名前のフォルダを作成します。 例えば利用者IDが nonexist@no-debris.org ならば、 /.sftp/nonexist@no-debris.org というディレクトリを作ります。 ホスティングパックの SFTP および FTP サービスでは サイトの共同作業用の利用者IDを用いて 同じサイトの / ディレクトリに接続しますので、 /.sftp/ の下には公開鍵認証を行う利用者の分だけディレクトリが 並ぶことになります。
SFTPで用いる公開鍵を RFC4716 形式で authorized_keys というファイル名のファイルに保存します。 特に OpenSSH 付属の SSH 用鍵作成用コマンドラインツールである ssh-keygen (Windows 環境では ssh-keygen.exe) で作成される鍵ペアの公開鍵ファイルはOpenSSHの独自形式ですので注意が必要です。 ssh-keygen を使用して鍵ペアを作成した場合には、 同コマンドのエクスポート機能を利用して RFC4716 形式に変換する必要があります。
authorized_keys ファイルには複数の公開鍵を登録することもできます。
複数の公開鍵を登録する場合には、単純にファイル内に続けてキーを記述します。
以下は二つのキーを記述した例です。
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "256-bit ECDSA, converted by nonexist@no-debris.org" AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCy/MWPjtQLRv5u79d teh5kn2UxcLH19Mo5rDqt0q8Rt8zs09ZrwckZY9woDGijuwjZG5ityaKKMXDkkNWPb6k8= ---- END SSH2 PUBLIC KEY ---- ---- BEGIN SSH2 PUBLIC KEY ---- Comment: "256-bit ECDSA, converted by nonexist@no-debris.org" AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNalNdTSZqfSCfrz8O idi42GuABLtKdZu5PEX1ffbdlrl0z2f6jMPZc0DQYVZa4zmIHzgKLhXrwXN+7qnbVW4V8= ---- END SSH2 PUBLIC KEY ----
このように作成した authorized_keys ファイルを ホスティングパックサーバーの公開鍵登録用ディレクトリの中の、 さらに認証を行う利用者の名前のディレクトリの中に authorized_keys の名前のまま設置します。 先の利用者IDが nonexist@no-debris.org の例でいえば、 /.sftp/nonexist@no-debris.org/authorized_keys として設置することになります。
以上のサーバー側の準備により、 当該利用者の公開鍵にて認証が可能になります。
こちら から行なえます。
サイト管理作業 (新しい利用者ID や電子メールアドレスの発行など) や サイトの設定変更は、サイト管理者メニュー から行なえます。