SSH

# SSHマニュアル UNIX系

SSH(Secure SHell)は、公開鍵暗号技術に基づく暗号システムを用いています。ここでは、そのSSH(プロトコル　バージョン1)を対象に、SourceForgeでの設定と基本的な操作方法について説明します。

注：OpenSSHがインストールされている環境を前提に進めています。

## 1.sshの入手

### 1.1.OpenSSH

OpenSSHはフリーのSSH接続ツールです。下記アドレスから入手できます。

http://www.openssh.org/

## 2.ssh-keygen:秘密鍵と公開鍵の作成

sshで認証に用いる鍵の作成を行います。

$ ssh-keygen -t rsa1 -C comment

-t:鍵の種類を指定。プロトコルバージョン1を使用するため、rsa1と設定する。
-C:コメントを入力することができます。

Enter file in which to save the key (/home/username/.ssh/identity):
鍵を保存するところを聞いてきますので、デフォルトの設定に変更の必要がない場合はそのまま進みます。

Enter passphrase (empty for no passphrase):
shellサーバにアクセスする際のパスフレーズを設定します。これは別に空でもかまいません。

Enter same passphrase again:
パスフレーズを確認するため、もう一度入力します。

Your identification has been saved in /home/username/.ssh/identity
Your public key has been saved in /home/username/.ssh/identity.pub
.sshディレクトリに秘密鍵と公開鍵が保存されました。

これで、鍵の作成は完了です。

## 3.sshプロトコルバージョンの優先順位

デフォルトのプロトコルバージョンの優先順位を設定する必要があります。

/etc/ssh/ssh_config

# protocal 2, 1
の行をコメントをはずして
protocal 1, 2
とします。

## 4.sourceforgeへ公開鍵を登録

認証に用いる秘密鍵と公開鍵が作成できました。次にその公開鍵をsourceforgeへ登録しなければなりません

1. まず、https://sourceforge.jp/からログインします。
2. ログインを行ったらアカウント管理をクリックします。
3. アカウント管理ページの下の方に
4. CVS/SSHで共有する公開鍵: 0 [鍵の編集]
   とありますので、この[鍵の編集]をクリックします。
5. ここの公開鍵テキストボックスに、ステップ1で作成した公開鍵identity.pubのテキストをコピーします。この時、最後に改行コードが入らないように注意して下さい。あとは、更新を押して鍵の数が更新されていれば完了です。
   実際にsshを使用できるようになるまで数分かかりますので数分後に、シェルサーバーにアクセスして下さい。

## 5.シェルサーバ

シェルサーバの目的は、ユーザコンテンツの管理をサポートしたり、Webページを提供したり、ユーザプロジェクトに関連するCGIを実行したりすることです。

### 5.1.利用できるサービス

- テキストエディタ（vi、pico、vimなど）
- CGIを実行するのに必要な言語（Perl、PHP、Pythonなど）
- コンテンツの管理と生成をサポートするツール（latte、docbookなど）
- ファイル交換をサポートするソフトウェア（ftp、scpなど）
- Webのログ解析（analog、WebAnalyzerなど）
- ユーザのWebサイトの操作をサポートするクーロンジョブ

### 5.2.利用できないサービス

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

### 5.3.シェルサーバにログイン

シェルサーバは、shells.sourceforge.jpです。ログインするには、

$ ssh -l username shells.sourceforge.jp

とします。

詳しくは、sourceforgeのサイトドキュメントをご覧下さい。

## 6.scp:ネットワーク上のホスト間でのファイル転送

シェルサーバにファイルをコピーする際に使用します。sshと同様の認証を行います。

書式
$ scp [option] [[user@]host1:]filename1... [[user@]host2:]filename2...

option
-r：再帰的にディレクトリーをコピーします。
-p：コピー元ファイルの最終修正時刻、最終アクセス時刻、及びパーミッションを保つようにする。

[[user@]host1:]filename1...：コピー元
[[user@]host2:]filename2...：コピー先

例:ローカルのfileをsourceforgeのホームディレクトリにコピー
$ scp filename username@shells.sourceforge.jp: