九州大学は、プログラミング学習用に教職員と学生に「ps server」というサーバを提供しています。九州大学の学生なら誰でも特別な申請を行うことなく無料で使用することができます。この記事では、SSHを使用してサーバにログインし、その機能を使う方法を解説します。
注意
筆者は2025年3月に九州大学を卒業しました。本記事の内容は現在の ps server の運用状況と異なる可能性があります。
前提条件
自分のコンピュータに、SSHクライアントがインストールされている必要があります。Windowsユーザは次の記事を参考にSSHクライアントをインストールすることができます。
利用制限
- 九州大学の構成員ではなくなった後は、ホームディレクトリが削除されます
- 平文での通信 (telnet, ftp, http) は行うことができません
- ログイン後は他のコンピュータと一切通信することができません
詳細は、九州大学 教育情報サービスのプログラミング学習サーバー「ps」のページをご覧ください。なお、本記事の内容について大学に問い合わせることはご遠慮ください
接続方法
ターミナルを開いて、次のコマンドを入力します。me@local:~$
までの部分はプロンプトで、人によって表示が異なります。
me@local:~$ ssh <SSO-KID>@ps.s.kyushu-u.ac.jp
<SSO-KID>
の部分は、自身のSSO-KIDに置き換えてください。例えば、SSO-KIDが4855425311
の九大生は次のようにしてサーバに接続します。
me@local:~$ ssh 4855425311@ps.s.kyushu-u.ac.jp
パスワードはSSO-KIDを設定したときに自分が決めたものです。入力するときセキュリティ上の理由からターミナルには何も現れず入力されていないように見えますが、コンピュータはきちんと認識しています。
パスワードを入力してログインに成功すると、次のような画面が表示されるはずです。
ターミナルのプロンプトが[<SSO-KID>@ps ~]$
のように代わり、接続できていることがわかります。
接続を終了するときは、コマンドexit
を入力して終了します。
使用例
scpでファイルを転送する
scp
(secure copy) は、cp
コマンドでファイルをコピーするようにサーバから、あるいはサーバへファイルをコピーすることができます。練習として、ps serverの過去のお知らせファイル (/local/NEWS
) を自身のPCへコピーしてみましょう。まだps serverに接続したままの場合はexit
と入力して接続を終了し、ターミナルで次のように入力します。
me@local:~$ scp <SSO-KID>@ps.s.kyushu-u.ac.jp:/local/NEWS .
scp
では、cp
と違いホスト名を指定し、コロン (:
) で区切った後、ファイルを指定します。これで、自身のPCに~/NEWS
が作成されます。
逆に自身のPC上にあるファイルをサーバ上に転送する、例えばホームディレクトリ上にあるdocument.txt
というファイルを転送するには次のように入力します。
me@local:~$ scp document.txt <SSO-KID>@ps.s.kyushu-u.ac.jp:document.txt
Vimでターミナルからテキストファイルを作成・編集する
Vimとは、ターミナル上で操作ができるテキストエディタです。Vimを使用することで、遠隔にあるファイルを直接ターミナル上で編集することができます。
新しいファイル (file.txt
) を作成するためにVimを起動するには、サーバ上で次のようなコマンドを入力します。
[<SSO-KID>@ps ~]$ vim file.txt
起動できたら、i
コマンドを入力して文字を挿入することができます。
ファイルを保存してVimを終了するには、:wq
コマンドを使用します。
詳細は、Vim日本語ドキュメントをご覧ください。なお、ps serverは他にemacsもサポートしています。
TeXで文書を作成する
ps serverには$\TeX$がインストールされているので、サーバ上で$\TeX$ ($\LaTeX$) を練習することができます。サーバ上にdocument.tex
という名前のファイルを作成し、次のようなコードを書きます。
\documentclass{jlreq}
\begin{document}
一般に、ラグランジュの運動方程式は次のように表される。
\begin{equation}
\frac{d}{dt}\left(\frac{\partial L}{\partial \dot{q_j}}\right)
- \frac{\partial L}{\partial q_j} = Q_{j}^{nc}, \quad j = 1, \ldots, n
\end{equation}
\end{document}
これをコンパイルしてPDF文書を作成するには、サーバにログインして次のようなコマンドを入力します。ここでは、例としてlualatex
を使用しています。
[<SSO-KID>@ps ~]$ lualatex document.tex
プログラムが正常に実行されると、同じディレクトリにdocument.pdf
が作成されているはずです。
Visual Studio CodeからSSHでログインする
Visual Studio Code は Remote - SSHという拡張機能でSSHをサポートしているので、まるでローカルのファイルを扱っているかのようにサーバに接続してファイルを編集・実行することができます。詳細はConnect over SSH with Visual Studio Codeをご覧ください。