はじめに
こんにちは。Krkrtって言います。
今、自分の受けている講義で、大学のLinuxサーバーに接続する必要があります。
その中で家からつなぐ方法も紹介されていたのですが、よくわからんソフトウェアを入れる必要あって、ほんとにそれじゃなきゃいけないんだろうか?
ということで、普段使い慣れたVSCodeで大学のサーバーに接続する方法を模索しました。
その備忘録を残そうと思います。ちなみにWindowsの話でMacは知りません。
紹介された方法
まず大学から紹介された方法を記します。ちなみに「Windows10環境を想定し…」と資料に書いてありました。いや、いつから更新してないんだよ。10はサ終したよ…。
ということで大学の資料によると、Xming、Rlogin、gedit(推奨)のインストールするみたいです。それぞれの説明として、
- Xming : Windows上で(X11 port forward 機能を利⽤し)、サーバ(⼤学)上で起動し
たgnuplotの出⼒をWindows(⾃宅のパソコン)で表⽰させるツール。 - Rlogin : サーバに login するソフト。コマンドラインに⼊⼒しプログラムを実⾏する
- gedit : ⾃宅のパソコン上でプログラムを編集するエディタ
と書いてありました。この後インストール方法が書いてあるのですが、「なんだそれらは」と。
調べてみるとRloginはTeraTermより使いやすい。geditはLinuxのエディタとして良い。みたいなこと書いてあるのですが、今後使うかわからないものをわざわざインストールするのは…
ちなみにですが、Xmingのようなものは、Xアプリケーションを表示させるために必要みたいです。Windowsにその機能がないかららしい。じゃあしょうがない。
ということでRloginとgeditの機能をVSCodeで再現してやりましょう!!
VSCodeで大学のLinuxサーバにつなごう!!
といったものの、geditに関してはそんないうことないですね。ちゃんと調べると、当然geditとVSCodeの違いなんてたくさん出てくるのですが、ちょっと講義で使うだけならほぼ変わりませんね。
問題はRloginですね。
vscode xming Linuxサーバーなどのように検索をすると、以下のような記事が出てきたのでそれを参考にセットアップしてみます。
1. X11サーバーを動作させるソフトウェアを入れる
まずは大学からもらった資料にあったXmingのインストールからですね。上にあげた記事だとVcXsrvで紹介されてますが、Xmingでも問題なく動きました。もちろん無料版を使っています。なのでVcXsrv(こちらも動作確認済み)でもXmingでもお好きなほうをダウンロードしてください。インストールの仕方(Xmingの場合)は以下のページをご覧ください。
2. 環境変数DISPLAYを設定
これはいまだによくわかっていません。でも動くからヨシ。
setx DISPLAY "127.0.0.1:0.0"
VSCodeを再起動しておきましょう。
後々、つないだ時にできているか確認します。
3. VSCodeの設定
まず、拡張機能「Remote – SSH」をインストールします。次にコマンドパレット (Ctrl + Shift + P) を開き、「Remote-SSH: Open Configuration File…」を選択します。.ssh/configのほうです。
そして
Host <リモートホスト名>
HostName <リモートホストの IP アドレスまたはドメイン名>
User <リモートユーザー名>
ForwardX11 yes
ForwardX11Trusted yes
このように編集します。
HostとHostNameは同じでいいです。どちらも大学サーバのドメインを書きました。
リモートユーザー名はVPNをつなぐのと同じようにやってください。
4. VSCodeで接続
VSCodeのリモートエクスプローラーなどから接続してください。大学のWi-FiかVPNでないとつなげないので注意しましょう。またパスワードを求められるので、入力して接続してください。
接続が完了したら以下のコマンドを入力してみましょう。
$ echo $DISPLAY
これで
localhost:10.0
のように何かしら出てきたら成功です。もし何も出てこなければ、環境変数DISPLAYを設定を見直しましょう。自分で調べるなりして解決してください。
以上で完成です。お疲れさまでした。
おまけ
自分の受けている講義ではFortranを使うのですが、コンパイルする環境などはサーバ側にあるので、VSCodeにはFortranの拡張機能をインストールするだけでOKです。
また余談ですが、gnuplotを
set term x11
としないと、Xmingでは動くが一回目にエラーを吐かれ、VcXsrvは遅くなります。
さらに追加余談。講義中は大学のパソコンを使い、今回紹介した方法はもちろん、大学から紹介された家でつなぐ方法とも違うつなぎ方でつなぎます。
その方法だと、大学のパソコンとLinuxサーバの間でPDF等を送りあうことが(おそらく)難しい(orない)ので、Linuxサーバ上で作ったPDFを大学のパソコンに送る方法を、「Linuxサーバ上でoutlookを開いて、自分に送る。」とかいう手間な方法で紹介されました。
VSCodeであれば右クリックしてダウンロードで終わりなのに…。
さらにさらに追加余談。講義でプログラムを書く紹介された方法がemacsで、あまりにもショートカットキーがWindowsと違いすぎてイラついたりしたので、家で作業したほうが簡単に終わる現象が発生しました。途中から講義中もcodeコマンドでVSCodeを堂々と開くようになりましたが。なんでCtrl+Sで保存してくれないんだ。なんでCtrl+Zで戻ってくれないんだ。なんで…
おわりに
やっぱりVSCodeは良いですね。といいつつ今度は本職のUnityの拡張機能が動かなくなるなどというトラブルが発生してますがそれは置いといて。
もし同じ講義を受けるVSCodeが好きな人や全く関係なくLinuxサーバにVSCodeでつなぎたかったという人の参考になってくだされば幸いです。