WindowsのPCやサーバーにリモートログイン用のSSHサーバーを構築しようとすると、サーバー用のソフトウェアのインストールが必要です。しかし、多くのSSHサーバーソフトウェアは開発が終了して何年も経過していたり、正式版が公開されていなかったりとセキュリティ的な不安から使用するのはちょっとためらいがあります。そんな中で、2004年に登場して2018年8月現在も開発が続いている「Bitvise SSH Server」どんなSSHサーバーなのか、実際に使って試してみました。

Bitvise SSH Server | Bitvise

https://www.bitvise.com/ssh-server

◆初期セットアップ

Bitvise SSH Serverのダウンロードページにアクセス後、「Bitvise SSH Server Installer」をクリックして、インストーラーをダウンロードします。



ダウンロードした「BvSshServer-Inst.exe」を右クリックして、「開く」をクリック。



Bitvise SSH Serverのインストーラーが起動するので、「I agree to accept all the term of this License Agreement」にチェックを入れて、「Install」をクリック。



すると、エディション選択画面が表示されます。「Standard Edition」は商用利用を目的としたエディションで、試用期間が30日設定されています。一方、「Personal Edition」は個人利用目的のエディションで、試用期間の制限はありませんが、Standard Editionと比べるとちょっと制限があります。ここでは「Personal Edition」のラジオボタンにチェックを入れて、「OK」をクリックします。



すると、名前の入力画面が表示されるので、「Name」「Last name」に名前を入力して、「OK」をクリックします。



すると、インストールが開始され、終了するとBitvise SSH Serverの設定画面が表示されます。Settingの下にある「Open easy settings」をクリック。



サーバー設定の画面が表示されるので、「Open port(s) to local network (subnet scope)」をクリックして、「Open port(s) to any computer」をクリックして選択後、「Next」をクリック。



すると、Windowsアカウントの設定画面が表示されます。Bitvise SSH ServerはWindowsに登録しているユーザーアカウントをログイン用IDとして使用できますが、ここでは個別にアカウントを登録して使用します。「Allow login to any Windows account」のチェックを外して、「Next」をクリックします。



アカウントの設定画面が表示されるので、「Add」をクリック。



次にアカウント登録画面が表示されます。ここでは秘密鍵を使用せず、IDとパスワードでログインするユーザーを設定します。「Virtual account name」にユーザー名(ここではgigao)と入力し、「Virtual account password」をクリック。



「Password」と「Confirm Password」に登録するパスワードを入力して、「OK」をクリックします。



「OK」をクリック。



「Save changes」をクリックします。



サーバー設定画面で「Start Server」をクリック。



すると、サーバー設定画面のステータスが「running」となり、サーバーが起動しました。



◆実際にSSH接続してみる

SSH接続する前に事前準備として、SSHでログイン後に移動するルートディレクトリとファイルを作成します。Bitvise SSH Serverのデフォルトのルートディレクトリは「C:\SftpRoot」となっています。そこで、コマンドプロンプトを開き、以下のコマンドを実行して、Cドライブ直下にSftpRootのフォルダーと「これはサーバー上のファイルです」と書いたテキストファイル(sample.txt)を設置します。

mkdir c:\SftpRoot

echo これはサーバー上のファイルです > c:\SftpRoot\sample.txt




早速、SSHでログインしてみます。今回はスマートフォンアプリのSSHクライアントソフト「ConnectBot」を使って、リモートログインしてみます。ConnectBotで接続先のホストURIを「gigao@[Bitvise SSH ServerのIPアドレス]」を設定しタップすると……



公開鍵のフィンガープリントの登録メッセージが表示されるので、「はい」をタップ。



パスワードの入力が求められるので、パスワードを入力して、Enterキーをタップします。



すると、Bitvise SSH Serverへのログインが完了し、コマンドの入力が可能になります。



サーバーへのログイン後はbvshellというUNIXライクなコマンドが使用可能になります。たとえば、「ls」コマンドを入力すると、ディレクトリ内の一覧が表示され、先ほどルートディレクトリの「C:\SftpRoot」に作成したsample.txtが表示されます。



以下のcatコマンドでファイルを開けば、ファイル内に「これはサーバー上のファイルです」が書かれていることを確認することが可能です。

cat sample.txt




◆帯域制限

ここまでは基本機能を使っていましたが、Bitvise SSH Serverで使用できる帯域制限機能を使ってみます。設定を行うには、サーバ設定画面で「Edit advanced settings」をクリックします。



拡張設定画面が表示されるので、左側のビューの「Virtual accounts」をクリックして、「設定したいユーザーID」「Edit」の順にクリック。



ここでは、ダウンロードの帯域を1秒あたり10KBに制限してみます。まず、左側のビューから「Limits and quotas」をクリック後、「Limits download bandwidth」のセレクトボックスをクリックして開き、「KB/s」をクリックします。



「Maximal download bandwidth」に「10」と入力し、「OK」をクリック。



拡張設定画面で「OK」をクリックして、設定を反映させます。



次にダウンロード速度をチェックしてみます。ダウンロード速度のチェックには「WinSCP」で確認してみます。まず、Bitvise SSH Serverを設定しているPCにWinSCPをインストール。そして、サーバーのルートディレクトリに約180MBのムービーファイルを設置しました。そして、これをWinSCPでダウンロードしてみると、デフォルトの状態では10秒ほどでダウンロードが完了しますが、制限を加えた状態ではダウンロード速度が1秒間に10KB程度となり、残り時間が約4時間30分となっていました。正しく制限が加わっていることが確認できました。



◆SSHログイン時に使用できるパスを増やす

次にルートディレクトリ以外にも別のパスを個人用のディレクトリとして設定できる「仮想ファイルシステム」機能を変更してみます。サーバー設定画面で「Open easy settings」をクリック。



「3. Virtual accounts」タブをクリックして、「設定するユーザー(gigao)」「Edit」の順にクリックします。



「Virtual filesystem layout」のセレクトボックスをクリックして、「Configure multiple mount points」をクリック。



すると、「Advanced filesystem layout」の項目が追加されるので、その下部にある「Add」ボタンをクリックします。



新しいディレクトリパスの設定画面が表示されるので、「Virtual mount path」に「/sftp2」、「Real root path」に「C:\SftpRoot2」と入力して、「OK」をクリック。



すると、「Advanced filesystem layout」に「/sftp2」の内容が追加されているので、「OK」をクリック。



「Save changes」をクリックして、設定を反映します。



そして、「C:\SftpRoot2」のパスとフォルダー内に「sftproot2.txt」のファイルを設置します。



そして、ConnectBotで接続し、ルートディレクトリ直下でlsコマンドを実行すると、「sftp2」のディレクトリが現れました。



以下のコマンドでsftp2の中にあるファイルの一覧を表示すると、「sftproot2.txt」が表示され、別のパスを個人用ディレクトリとして設定することができました。

ls sftp2




◆統計情報の表示

Bitvise SSH Serverでは、各ユーザーがリソースをどれくらい使ったかなどを知ることができる統計情報を見ることができます。サーバ設定画面で「Statistics」タブをクリックし、「表示したいユーザー(gigao)」「View in new window」の順にクリックします。



すると、3つのグラフが表示され、上から「ダウンロード量」「アップロード量」「ログイン回数」が表示されます。この表示は日ごとや月ごとなどに切り替えることも可能です。



◆Gitリポジトリ統合

Bitvise SSH Serverを使ってバージョン管理システムのGitのリポジトリを他のPCに公開することができます。設定するには、サーバー設定画面の「Open easy settings」をクリック。



「3. Virtual accounts」タブをクリックして、「設定するユーザー(gigao)」「Edit」の順にクリックします。



「Shell access type」のセレクトボックスをクリックして、「Git access only」をクリック。



「Git binaries directory」にGitのバイナリファイルのパス、「Git repositories root directory」にGitリポジトリのパス(ここでは「C:\SftpRoot2」)を入力し、「OK」をクリックします。



「Save changes」をクリックして完了です。



以降は設定したGitレポジトリを複数のユーザーで使用することが可能になります。



これ以外にも以下のように数多くの機能が実装されており、かなり細かい設定を行うことも可能です。

・シングルサインオン機能

・難読化機能

・Telnet機能

・ポート転送機能

・テキストファイルでの設定記述

・マルチインスタンス機能

・冗長化構成