シェルサーバーが提供するサービスとその利用方法

 SourceForge.JPでは、SSH経由でアクセスできるシェルサーバーshell.sourceforge.jpを提供しています。シェルサーバーにはユーザーごとにホームディレクトリが用意されており、基本的なシェルの機能や定期的にコマンドを実行するためのcrontab、各種スクリプトの実行環境などが利用できます。

 なお、シェルサーバーを利用するには、事前にSSH公開鍵を登録しておく必要があります。SSH公開鍵の登録は、各ユーザーページのアカウント管理ページから行えます。SSH公開鍵の登録については、SSHアクセスのためのキーをご参照ください。

シェルサーバーが提供するサービス

 シェルサーバーでは、次の機能が利用できます。

  • 各種シェル(bash、tcsh、ksh、zshなど)
  • テキストエディタ、ページャ(vi、pico、vim、emacs、less、lvなど)
  • スクリプト言語環境(Perl、PHP、Ruby、Pythonなど)
  • テキスト処理やコンテンツ管理を行うツール(latex、docbook、nkfなど)
  • ファイルの転送を行うツール(ftp、scp、rsyncなど)
  • CVS/Subversionリポジトリにアクセスするツール(cvs、svnなど)
  • ファイルの圧縮/展開/変換を行うツール(zip、gzip、lha、tarなど)
  • 定期的なコマンド実行を行うcron

 このほかにも、シェルサーバーには多数のツールがインストールされています。インストールされているコマンドの一覧は、シェルサーバーで利用できるコマンドをご確認ください。もしインストールされていないツールが必要な場合は、適宜お問い合わせください。

利用できないサービス

 次に挙げているものは、シェルサーバーでサポートしていない機能の一部です(このリストは、決して包括的なものではありません)。このような機能を提供するソフトウェアをインストール・実行しているユーザーについては、警告なしにアカウントを停止します。

  • IRC(ボットを含む)サービス
  • ソフトウェアのコンパイル
  • メールリーダー
  • ネットワークスキャナー
  • サービスソフトウェアの拒否
  • ネットワーク侵入ソフトウェア(「rootkit」などの個別の侵入ソフトウェア)
  • パケットスニファー
  • Web Proxy

 さらに、ユーザーがシステムセキュリティまたはアクセス制御を回避しようと試みたり、ネットワーク侵入やサービス攻撃拒否を開始またはそれらに参加したり試みたりした場合は、刑事告発することがあります。SourceForge.JPは、法律の執行機関のそのような活動に対する捜査に協力します。何が許可され、何が許可されないのかの詳細についてはお問い合わせください。

シェルサーバーへのアクセス

 シェルサーバーのホスト名は、「shell.sourceforge.jp」です。シェルサーバーへのアクセスにはSSHを利用します。SSHプロトコルバージョン1、2の両方が利用できます。シェルサーバーのホスト鍵のfingerprintは以下の通りです。

SSHプロトコルfingerprint
SSH version 1ab:ea:b4:05:02:45:96:1a:06:f0:22:f9:a3:02:e1:33
SSH version 2 (rsa)15:22:46:69:9f:ac:14:68:8a:be:f1:e4:29:7c:a9:51
SSH version 2 (dsa)07:ca:16:b6:df:a4:bf:d3:4c:1d:ba:e1:12:bf:96:76

 なお、シェルサーバーでのユーザー名/パスワードはSourceForge.JPのログイン名/パスワードと同じです。

シェルサーバーを使えるようにセットアップする

 シェルサーバーは、単にSourceForge.JPのアカウントを取得しただけでは利用できません。シェルサーバーを利用するためには、何らかのプロジェクトに参加している必要があります。つまり、

  • 自分でプロジェクトを立ち上げる
  • 既存のプロジェクトに開発メンバーとして参加する

といったことが必要になります(あくまでシェルサーバーはプロジェクトの活動を補助するためのものであり、プロジェクトに参加していないのならシェルサーバー機能は不要です)。

 また、シェルサーバーへアクセスするには、あらかじめSSH公開鍵を登録しておく必要があります。SSH公開鍵の登録方法については、SSHアクセスのためのキーをご参照ください。

シェルサーバーに用意されるディレクトリ

 シェルサーバーには、各ユーザーごとにホームディレクトリが用意されています。ユーザーのホームディレクトリは、「/home/users/<ユーザー名の1文字目>/<ユーザー名の1、2文字目>/<ユーザー名>/」というパスにあります。

 たとえば、ユーザー名が「johnsmith」の場合、ホームディレクトリは「/home/users/j/jo/johnsmith/」になります。

 また、プロジェクトごとのホームディレクトリも用意されています。プロジェクトのホームディレクトリは、「/home/groups/<プロジェクトUNIX名の1文字目>/<プロジェクトUNIX名の1、2文字目>/<プロジェクトUNIX名>/」というパスにあります。

 たとえば、プロジェクトUNIX名が「sourceforge」の場合、プロジェクトのホームディレクトリは「/home/groups/s/so/sourceforge/」になります。

ホームディレクトリのパーミッションとユーザーの所属グループ

 ユーザーおよびグループのホームディレクトリは、デフォルトでは次のようなパーミッションが設定されます。

ディレクトリ所有ユーザー所有グループパーミッション
ユーザーのホームディレクトリそのユーザー「users」0755
プロジェクトのホームディレクトリ「dummy」そのプロジェクトのUNIX名2775

 シェルサーバーでは各プロジェクトごとに、プロジェクトのUNIX名と同じ名前を持つグループが用意されています。このグループには、そのプロジェクトの参加ユーザーが自動的に加えられます。つまり、各プロジェクトのホームディレクトリ以下は、すべてのユーザーから閲覧可能ですが、書き込みについてはそのプロジェクトに参加しているユーザーだけが可能という設定になっています。

シェルサーバーへのファイル転送

 外部からシェルサーバーにファイルを転送するには、SCPもしくはSFTPが利用できます。また、シェルサーバーにはftpやscp、rsync、cvs、svnといったコマンドが用意されており、シェルサーバーにログインしてこれらのコマンドを実行することで、外部のサーバーからファイルをコピーすることも可能です。

 Windows環境でのSCP/SFTPの利用については、Windows用SCP/SFTPクライアント「WinSCP」で安全なファイル転送をご参照ください。