ログイン
編集不可のページディスカッション情報添付ファイル
"hatuyuki0224/ssh講習"の差分

MMA
1と5のリビジョン間の差分 (その間の編集: 4回)
2017-04-28 16:06:46時点のリビジョン1
サイズ: 11007
編集者: hatuyuki0224
コメント:
2018-05-23 19:36:48時点のリビジョン5
サイズ: 0
編集者: sy_okada
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
#format gfm
#acl hatuyuki0224:read,write,revert,delete,admin Known:read,write

(この記事は [su_zu/ssh講習](/su_zu/ssh講習) をベースに手直ししただけです。)

# 環境構築

## Google Chrome

Chrome の拡張機能として [Secure Shell](https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo?hl=ja) がある。

## Windows の方

### PuTTY

本家PuTTY[http://www.chiark.greenend.org.uk/~sgtatham/putty/](http://www.chiark.greenend.org.uk/~sgtatham/putty/)

日本語化されているPuTTY(推奨)[http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html]]
解凍するとputtyjp.exeがあります、ダブルクリックすると起動します。

### Xming

[https://www.cc.uec.ac.jp/in/xming/cgi-bin/agreement.cgi](https://www.cc.uec.ac.jp/in/xming/cgi-bin/agreement.cgi) (学内からのアクセスのみ可能)ここからrel Xming-*-setup.exeを使ってXmingをインストールしてください。

[http://www.straightrunning.com/xmingnotes/](http://www.straightrunning.com/xmingnotes/) ここからXming-fontsをインストールしてください。

## Mac(OS X)の方

### XQuartz

[https://www.xquartz.org/](https://www.xquartz.org/)

このリンクからXQuartz-*.dmgをダウンロードしてインストールしてください。

## Linuxの方

ほとんどのLinuxの方は環境構築はしなくて大丈夫です。


# 講習の目的

ssh を用いて nest (MMAのサーバ), sol (教育系システムのメインサーバ) にログインすることです。


# sshとは

sshとはSecure Shellの略称です。

shell (シェル) とはユーザーとカーネル (OSの中核となるもの) との間に仲介して対話的に処理を行うもののことです。
カーネルを中身として見るとshellは殻のようであるからshellという名前が付けられました。

なぜsshを用いてサーバにログインする必要があるのかを一言で表すと**安全**だからです。

sshは通信を暗号化しているので安全性が高いのですが、telnetなどを用いてサーバにログインするとパスワードを平文(暗号されていないそのももの状態)を送信するのでもしそれを盗聴されてしまった場合セキュリティー上大変危険な状態になります。

# X11転送(X11 forwarding)

X11 forwardingを使えばリモートのXアプリケーション(GUIアプリケーション)を操作することができます。具体的な例で言うとサーバにあるpdfを開いたり、emacsを GUI 付きで開いたり際に必要になります。

# sshクライアント

sshというのは規格であり、利用するためにはソフトウェア(sshクライアント)が必要です。

- OpenSSH(Mac, LinuxなどのUNIX系OS): Mac, LinuxなどのUNIX系OSの方

- PuTTY(Windows): Windowsの方

## OpenSSH(Mac, LinuxなどのUNIX系OS)

基本的にUNIX系OSではOpenSSHがインストールされています。

### 使い方

どちらでも同じです。
```
$ ssh -l ユーザー名 ドメイン名
$ ssh ユーザー名@ドメイン名
```

solにログインする形で使い方を説明します。ターミナルを起動してください。

ユーザー名をUECアカウント(ここでは「a1234567」とする)、ドメイン名を「sol.edu.cc.uec.ac.jp」として入力してEnterを押してください。
```
$ ssh a1234567@sol.edu.cc.uec.ac.jp
```


以下のようなものが出たと思いますが詳しい説明は[/Fingerprint](こちら)です。yesを入力してEnterを押してください。
```
The authenticity of host 'sol.edu.cc.uec.ac.jp (130.153.16.7)' can't be established.
RSA key fingerprint is 47:df:d5:98:62:90:db:86:8f:26:82:ea:65:e5:69:16.
Are you sure you want to continue connecting (yes/no)?
```

以下のようになると思うのでパスワードを入力してEnterを押してログインできます。
```
a1234567@sol.edu.cc.uec.ac.jp's password:
```

終了する場合はexitを入力してEnterを押してください。

### 学外からnestにログインする方法

nestにはグローバルIPv4アドレスが割り当てられていないので学外からは直接ログインすることはできません。
この講習では2つの方法を紹介します。(ここではMMAアカウントを「su_zu」として説明します)

#### moonを用いる方法(推奨)

moonの2222ポートにつなぐことで直接nestにログインすることができます。
```
$ ssh -p 2222 su_zu@moon.mma.club.uec.ac.jp
```

#### solを用いる方法

一度solにログインして再度sshを用いてnestにログインします。

二度sshのコマンドを叩くのも良いのですが多段sshを行うともっと簡単にできます。

多段sshを行う場合の.ssh/configの設定です。.ssh/configの設定は下記に記述してあります。
```
Host sol
    HostName sol.edu.cc.uec.ac.jp
    User a1234567

Host sol-nest
    HostName nest.mma.club.uec.ac.jp
    User su_zu
    ProxyCommand ssh -W %h:%p sol
```

```
$ ssh sol-nest
```
上記のように入力すればnestにログインすることができます。

多段sshのおまけ(ncを使う方法)

nestからsolに接続する.ssh/configです(学外から)。
```
Host moon
    HostName moon.club.uec.ac.jp
    User su_zu
    Port 2222

Host moon-sol
    HostName sol.edu.cc.uec.ac.jp
    User a1234567
    ProxyCommand ssh moon nc %h %p
```

上記のようにすれば多段sshができます。ただしsolには直接ログインしたほうが良いのであくまで一例にとどめてください。

ちなみにsolにはncが入ってないので上記のようなことはできません。

### X11 forwarding

Macの方はXQuartzが入っていることを確認してください

```
$ ssh -X ユーザー@ドメイン
```

これでGUIアプリを動かすことができます試しにemacsとかemacsとかemacsを動かしてみてください

### .ssh/configの設定

毎回毎回長いコマンドを打ち込むのは面倒くさいと思います、そこで.ssh/configを設定して簡単にログインできるようにしましょう。

```
Host 任意の名前
    HostName ドメイン名
    User ユーザー名
    Port ポート番号 #記述しない場合は22となる
```

nestにログインする形で説明します。(ここではMMAアカウントを「su_zu」とする)

~/.ssh/configを以下のように編集して保存してください。
```
Host nest
    HostName nest.mma.club.uec.ac.jp
    User su_zu
```

以下のコマンドを入力してパスワードを入力すればログインすることができます。
```
$ ssh nest
```

## PuTTY(Windows)

### 使い方

日本語化されたputtyを用いてsolにログインする形で使い方を説明します。

左のセッションをクリックしてホスト名に「sol.edu.cc.uec.ac.jp」、ポートに「22」を入力してください。
<<BR>>
![](https://wiki.mma.club.uec.ac.jp/su_zu/ssh%E8%AC%9B%E7%BF%92?action=AttachFile&do=get&target=putty1.jpg)


左の変換をクリックしてリモートの文字セットに「UTF-8」を入力してください。
<<BR>>
![](https://wiki.mma.club.uec.ac.jp/su_zu/ssh%E8%AC%9B%E7%BF%92?action=AttachFile&do=get&target=putty2.jpg)


左のセッションをクリックしてセッション一覧に任意の名前(ここでは「sol」とする)を入力して保存をクリックしてください。これで設定は保存をされました。
<<BR>>
![](https://wiki.mma.club.uec.ac.jp/su_zu/ssh%E8%AC%9B%E7%BF%92?action=AttachFile&do=get&target=putty3.jpg)


設定を読み込むには設定の一覧から選択して読み込むをクリックしてください。

開くをクリックすると以下のようなものが出たと思いますが詳しい説明は[/Fingerprint](こちら)です。はいをクリックしてください。
<<BR>>
![](https://wiki.mma.club.uec.ac.jp/su_zu/ssh%E8%AC%9B%E7%BF%92?action=AttachFile&do=get&target=putty4.jpg)


自分のUECアカウントのID(ここでは「a1234567」とする)を入力してEnterを押し、パスワードを入力してEnterを押すことでログインできます。
<<BR>>
![](https://wiki.mma.club.uec.ac.jp/su_zu/ssh%E8%AC%9B%E7%BF%92?action=AttachFile&do=get&target=putty5.jpg)


終了する場合はexitを入力してEnterを押してください。

例えばnestにログインする場合は「a1234567」を自分のMMAアカウントに、「sol.edu.cc.uec.ac.jp」を「nest.mma.club.uec.ac.jp」に変えることでnestにログインすることができます。

### 学外からnestにログインする方法

nestにはグローバルIPv4アドレスが割り当てられていないので学外からは直接ログインすることはできません。
この講習では2つの方法を紹介します。

#### moonを用いる方法(推奨)

ホスト名に「moon.mma.club.uec.ac.jp」、ポートに「2222」を入力することでnestに接続することができます。
<<BR>>
![](https://wiki.mma.club.uec.ac.jp/su_zu/ssh%E8%AC%9B%E7%BF%92?action=AttachFile&do=get&target=moon1.jpg)


#### solを用いる方法

一度solにログインして再度sshを用いてnestにログインします。solにはopensshがインストールされているので **OpenSSH(Mac, LinuxなどのUNIX系OS)の使い方** を見てください。

### X11 forwarding

solに接続する形で説明します。

Xmingがlaunchされていることを確認してください。


solの設定を読み込んだ後に、左のSSHのX11のX11フォワーディングを有効にしてください。
<<BR>>
![](https://wiki.mma.club.uec.ac.jp/su_zu/ssh%E8%AC%9B%E7%BF%92?action=AttachFile&do=get&target=putty6.jpg)


そして開くをクリックしてください。これでGUIアプリを動かすことができます試しにemacsとかemacsとかemacsを動かしてみてください

# Fingerprint

初めてsshサーバにログインする際に英数字の羅列した文字列が表示されたと思いますがこれをFingerprintと言います。

Fingerprintとはsshサーバに最初にログインするときログイン先のサーバが正しいかどうかを判断するためのものです。

sshでログインする場合は接続先のサーバのFingerprintを事前に**信頼できる方法**で調べておいて一致しているか確認することでより安全なものとなります。

solのFingerprintは僕が調べた限り公開されていない‥‥

例えばnestのFingerprintは[/Computers](こちら)に記述されています。