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

MMA

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

環境構築

Google Chrome

Chrome の拡張機能として Secure Shell がある.

Windows の方

PuTTY

本家PuTTYhttp://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 (学内からのアクセスのみ可能)ここからrel Xming-*-setup.exeを使ってXmingをインストールしてください.

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

Mac(OS X)の方

XQuartz

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

以下のようなものが出たと思いますが詳しい説明は/Fingerprintsです. 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」として説明します)

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を実行できます.

$ ssh -o ProxyCommand='ssh a1234567@sol.edu.cc.uec.ac.jp -W %h:%p' akky@nest.mma.club.uec.ac.jp

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」を入力してください.
<
>

左の変換をクリックしてリモートの文字セットに「UTF-8」を入力してください.
<
>

左のセッションをクリックしてセッション一覧に任意の名前(ここでは「sol」とする)を入力して保存をクリックしてください. これで設定は保存をされました.
<
>

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

開くをクリックすると以下のようなものが出たと思いますが詳しい説明は/Fingerprintsです. はいをクリックしてください.
<
>

自分のUECアカウントのID(ここでは「a1234567」とする)を入力してEnterを押し, パスワードを入力してEnterを押すことでログインできます.
<
>

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

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

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

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

solを用いる方法

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

X11 forwarding

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

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

solの設定を読み込んだ後に, 左のSSHのX11のX11フォワーディングを有効にしてください.
<
>

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

Fingerprint

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

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

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

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

例えばnestのFingerprintは/Fingerprintsに記述されています.

akky/ssh講習 (最終更新日時 2018-05-11 17:08:27 更新者 akky)