SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private...

35
2020 6 月末 update 1 SSH 接続とコンパイル環境の整備

Transcript of SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private...

Page 1: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

2020年6月末update

1

SSH接続とコンパイル環境の整備

Page 2: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

この資料で説明している内容(目次)

• SSH接続環境とC/C++, Fortranプログラムのコンパイル環境の準備方法

– Windowsを使う場合のソフトウェア準備方法

• PuTTYを使う場合

– インストール方法、SSH接続方法

• MobaXtermを使う場合

– インストール方法、SSH接続方法、開発環境を用意する方法

• Cygwinを使う場合

– インストール方法、開発環境を用意する方法

• 仮想マシン等を使う場合

– インストール方法、開発環境を用意する方法

– Cygwin、仮想マシン等、Linux、MacでSSH接続を行う方法

• 補足

– ファイルの送受信を行う方法

– 秘密鍵ファイルの形式変換について

– 画面転送(X転送)、その他

2

Page 3: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

パスワード認証と公開鍵認証

• よく使われるSSHの認証方法はパスワード認証と公開鍵認証

– パスワード認証:ユーザIDとパスワードを使う

– 公開鍵認証:ユーザIDと鍵ファイルを使う

• 秘密鍵と公開鍵

– 秘密鍵:他人に絶対に見せてはいけないファイル。秘密鍵を使うときに使うパスワードをパスフレーズと呼ぶ。パスフレーズなしの秘密鍵を作ることもできるが、セキュリティ的に絶対にパスフレーズなしにしてはいけない。

– 公開鍵:接続先のホストに設置するファイル。.ssh/authorized_keysというファイルに書き込んで使う。

3

Page 4: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

SSH接続環境の準備

• LinuxやMacの場合:(おそらく)標準でsshコマンドが利用可能

– ※Linuxのディストリビューションやインストール時の設定によっては入っていないかも知れない、入っていなければ各OSのパッケージ管理機能(yum、apt)などで入れて使う

• Windowsの場合

– 最近(Windows10、2018年4月のアップデート以降)は標準でsshコマンドが利用可能

– 使い方がわかっている人はこれを使っても良い

– cmd.exeが使いにくいのでpowershellとあわせて使うと良い

• (本資料では扱いません)

4

Page 5: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

Windows向けSSH接続環境の整備

• 古いWindowsを使っている場合は何らかのソフトウェアが必要

• 最新のWindowsでもコンパイル環境が欲しい場合は対応するソフトウェアが必要

• とにかくSSHさえできれば良い場合

– PuTTY

• 簡単。何年も前から使われている。ローカルPCでコンパイル等を行うことはできない。

• プログラム開発環境も手元に欲しい場合

– MobaXterm

• 新しめで高機能なソフトウェア。実はCygwinにGUIをつけたようなもの。

– Cygwin

• Windows上で動くLinuxのようなもの。インストール作業に慣れてしまえば便利。

– Windows Subsystem for Linux(WSL)、仮想マシン

• UbuntuやCentOSそのものなので、一番自由度が高くて便利。

• WSLはバージョンが混在していて説明が難しいため、仮想マシンはOSのインストールの説明が大変なため、本資料では扱いません。

5

Page 6: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

PuTTYを使う場合

6

Page 7: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

PuTTYを使ってSSH接続する

• https://www.ranvis.com/putty から最新版をダウンロードする

– 本資料を作成した時点では PuTTY-0.74-ranvis 2020-06-29 32bit

– PuTTY-0.74-ranvis-20200629.win32.zipというファイルが入手できたはず

– zipファイルを展開する

• ダウンロードしたファイルを右クリック→「すべて展開」

• 使うのはその中にあるputty.exeというファイル

一番上のものを使う。「2020-06-29」は更新日時に対応。より新しいものが出てきたらそれを使う。

7

Page 8: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

PuTTYを使ってSSH接続する:パスワード認証を使う場合

• 接続方法

– ログインIDとパスワードで接続する場合は、最低限、起動後にホスト名を入力して「開く」を選ぶだけでよい

– 初めて接続するホストについては警告がでる

– 「はい」を選べば今後は出ない

8

Page 9: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

←画面1:putty.exeを起動したところ。ログインIDを尋ねられるので入力してEnterで画面2へ。

↑画面2:ログインIDを入力したところ。Enter入力で画面3へ。

↑画面3:パスワードIDを求められる。入力しても何も表示が変わらないが、入力してEnter入力でログイン完了。(クリップボードの貼り付けはタイトルバー右クリックから選択、またはメイン画面上で右クリック。)

↑ログイン後にlsコマンドとgcc -vを実行したところ。接続先にインストールされているプログラムが使える。

PuTTYを使ってSSH接続する:パスワード認証を使う場合(つづき)

接続先情報が表示される

接続先情報が表示される

接続先情報が表示される

接続先情報が表示される

秘密

秘密

秘密

秘密

秘密

9

Page 10: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

見た目の設定(フォントなど)は• 接続前または• 接続後にタイトルバーを右クリック→「設定の変更」に変更する

10

フォント変更の例

Page 11: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

PuTTYを使ってSSH接続する:公開鍵認証を使う場合

• まず鍵ファイルを作成する

– puttygen.exeで公開鍵を準備 → putty.exeで接続

– 「生成」ボタン→マウスを動かす

– 「パスフレーズ」(鍵を使うためのパスワード)を入力して「秘密鍵を保存」ボタン(拡張子ppkのファイルを保存)

– 「OpenSSHのauthorized_keysファイルにペーストするための公開鍵」をどこかに保存しておく

12

このエリアでマウスを適当に動かすとプログレスバー(緑色のバー)が進む

Page 12: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

PuTTYを使ってSSH接続する:公開鍵認証を使う場合

• 作成した鍵ファイルを用いて接続する

– 起動時の画面で「接続」-「SSH」-「認証」の画面を開き、「認証のための秘密鍵ファイル」の「参照」ボタンから保存した秘密鍵(拡張子ppkのファイルを選択)

– 「セッション」に戻り、ホスト名を入力して「開く」ボタン

– ユーザ名を入力してEnter、パスワードの代わりにパスフレーズを入力してEnter

13

Page 13: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

MobaXtermを使う場合

14

Page 14: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

MobaXtermを使ってSSH接続する

• https://mobaxterm.mobatek.net/ からダウンロードする

– 以下の手順で選んでいくと MobaXterm_Portable_v20.2.zip がダウンロードできるはず

– ダウンロードしたファイルを右クリック→「すべて展開」

– その中の MobaXterm_Personal_20.2.exe を起動する

こちらからはインストーラーが入手できる。今後も使い続けるならこちらでももちろん良い。

※20.2は2020.06.30の時点でのバージョン。更新されたら読み替えること。

15

Page 15: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

MobaXtermを起動したところ

※このあたりには「最近接続した情報」が表示されるここからSSH接続を開始する

16

Page 16: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

MobaXtermを使ったSSH接続の手順:パスワード認証を使う場合

Sessionを押すと出てくる画面。ここから左上のSSHを選択し……

Specify usernameのチェックボックスをチェックしてテキストボックスにIDを入力しておくと、次の画面でのID入力が省略される。

Remote hostに接続先ホスト名を入力して「OK」

17

Page 17: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

login as: と表示されたらIDを入力してEnter、その後さらにパスワードを入力してEnter。

↑ログイン後にlsコマンドとgcc -vを実行したところ。接続先にインストールされているプログラムが使える。

ファイル一覧が表示されていて、ここからファイルの転送(アップロード・ダウンロード)も行える。

18タブには接続先の情報が表示される

秘密

秘密

秘密

秘密

Page 18: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

• 鍵ファイルの作成

– 「Tools」-「MobaKeyGen」から鍵を生成。

– ボタンの配置などは異なるが、使い方はPuTTYの場合と同じなので詳細はPuTTYのページを参照。

MobaXtermを使ったSSH接続の手順:公開鍵認証を使う場合

19

Page 19: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

MobaXtermを使ったSSH接続の手順:公開鍵認証を使う場合

• 鍵ファイルを用いた接続

– 「Session」ボタンで開くSession settings画面から「SSH」を選択、パスワード認証の時に加えて「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。

20

Page 20: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

MobaXtermをローカル開発環境として使う

• MobaXtermはssh接続せずに手元で利用することもできる(PuTTYではできない)

「Start local terminal」または上部の「+」でターミナルを起動。

lsコマンドを実行してみるとWindowsの「ドキュメント」が「MyDocuments」として見えているので、ここにファイルを置けばエクスプローラでファイル操作ができる。

21

Page 21: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

MobaXtermをローカル開発環境として使う:コンパイラの導入

• MobAptコマンドを実行(Toolsメニューの中のMobApt~からでも起動できる)してgcc等をインストールすれば、プログラムの開発環境としても利用可能。

22

gcc-core、gcc-fortran、gcc-g++を選択したところ。(Ctrlを押しながら選べば複数選べる。)Install/updateでインストールされる。

インストール開始時に確認メッセージが出ることがある、yを押せば進む。(yを入力してEnterだったかもしれない。)

Page 22: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

23

↑インストール終了後にgccとgfortranのバージョン確認をしたところ。

↓インストール終了MobaXtermにはテキストエディタ(MobaTextEditor)も用意されており、editコマンドで起動可能。viもインストールされている。emacsなどを使いたい場合はgcc同様にMobAptでインストールすれば良い。もちろん、Windowsのエディタで編集したものをコンパイルしても良い。

Page 23: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

Cygwinを使う場合

24

Page 24: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

インストール

25

• Webページからダウンロードして実行

– https://cygwin.com/

32bit Windowsを使っている場合はこちら

Page 25: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

セットアップ手順

• 基本的には次へ次へ進めるだけ

26

.jpで終わるものを選ぶとダウンロードが速い(ここではjaistを選択)

インストール先、デフォルトはC:¥cygwin64

インストール時に一時ファイルが置かれる場所

Page 26: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

セットアップ手順:インストールするプログラムの選択

• SSH接続をするならopensshは必須

• プログラム開発(コンパイル)をするならgcc-core, gcc-fortran, gcc-c++などを選択

• その他、gitやらemacsやら使うものを自由に選ぶ

– 全部インストールしても構わないが、大変長い時間とディスク容量を要するので推奨はしない

27

右図は既にopensshがインストールしてある状態のためKeepとなっている。インストール時には適当に選べば良い。(大きな数字のものを選択するとか、画像では「Default」となっているところが「New」になっているはずなので、ここをダブルクリックして最初に出てくるものなど。)

Page 27: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

セットアップ手順:あとは待つだけ

• たくさんのソフトをインストールすると時間がかかるが、待てば良いだけ

28

これは何もソフトを追加していない例。初めてインストールする際は多くのソフト名が並ぶ。

Page 28: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

Cygwin起動後

• 基本的にLinuxと一緒

• 見た目(色、フォントなど)の変更などはタイトルバーを右クリックして「Options」から

– フォントの他、コピーアンドペースト、・ズーム・右クリックメニューなどは好みに合わせて調整しておくと使いやすい

29

ログインした状態(snowはこのPCのホスト名)

Page 29: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

Cygwin、Linux、MacでSSH接続を行う方法

32

Page 30: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

• ssh-keygenプログラムで作成する

① ssh-keygen -t rsa -b 2048 を実行

② ファイル保存先を指定(初めて作る時はそのままEnterで良い、公開鍵には.pubが追加される)

③ パスフレーズを入力してEnter

④ パスフレーズを再度入力してEnter

• 公開鍵ファイルはssh-rsaで始まる一行の文字列

– ランダムな文字列の後、空白、ユーザ名@作成したホスト名で終わる

公開鍵ファイルの作成

33

Cygwinの例。LinuxやMacでも同様。

③④

※③と④は入力しても表示されない

鍵ファイルの保存先$ cat ~/.ssh/id_rsa.pubssh‐rsaAAAA… … … … … … … … … … …(中略、英数字がしばらく続く)… … … … … nmsbl6jA2N userX@host

Page 31: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

SSH接続

• 基本

– ssh ホスト名

– 例:ssh example.com

– 接続時にユーザ名とパスワードまたは公開鍵パスフレーズの入力を求められる

• ユーザ名や秘密鍵を明示する場合

– ssh -i 秘密鍵ファイル ユーザID@ホスト名

– 例:ssh -i .ssh/id_rsa [email protected]

• 入力の省略などをしたい場合

– .ssh/config

– ssh-agent

– あたりについて調べてみましょう

34

Page 32: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

補足

35

Page 33: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

SSH接続先と手元のPCとの間でファイルの送受信をする方法

• 方法1:scpコマンドやsftpコマンドを使う(MacやLinuxではすぐに使えるはず)

• 方法2:MobaXtermの左側ツリーウィンドウを使う(右クリックメニューで転送できる)

• 方法3:WinSCPやFileZillaなどのツールを使う

– http://winscp.net/jp/

– https://filezilla-project.org/

• SSHログインと同様にパスワードや公開鍵でログインして使う

36

Page 34: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

秘密鍵ファイルの形式変換について

• OpenSSH(CygwinやLinux、Macで使う)が使う秘密鍵ファイル(一般的にはid_rsaファイル)とPuTTYやMobaXtermが使う鍵ファイル(ppkファイル)は形式が異なる

• puttygen/MobaKeygenを使えば形式の相互変換が可能

– OpenSSH形式の秘密鍵ファイルを読み込む

• 「変換」メニューの「鍵のインポート」

• 「Conversions」メニューの「Import key」

– ppkファイルの秘密鍵ファイルを読み込む

• 「読み込み」ボタン、「Load」ボタン

– OpenSSH形式の秘密鍵ファイルを書き出す

• 「変換」メニューの「OpenSSH形式へエクスポート」

• 「Conversions」メニューの「Export OpenSSH key」

– ppkファイルの秘密鍵ファイルを書き出す

• 「秘密鍵を保存」ボタン、「Save private key」ボタン

37

Page 35: SSH接続とコンパイル環境の整備2020/06/30  · 「Advanced Settings」の「Use private key」で保存したppkファイルを選択してから「OK」。 20 MobaXtermをローカル開発環境として使う

画面転送(X転送)、その他

• 画面転送(X転送)

– 環境によってはSSH接続先で表示される画面(ウィンドウ)を手元で見ることができる

– MobaXtermではSSH接続時にデフォルトで「X11-Forwarding」が有効なので手元の設定は不要

– Linux, Macではsshコマンドに-Yオプションを付ければ良い

– Cygwinでも-Yオプションで良いが、画面を表示するプログラムが別途必要

• Cygwinインストーラでxorg-serverとxinitを追加し、スタートメニューからXWin Serverを起動しておく

• パスフレーズ入力の省略について

– puttyのpageant.exeやOpenSSHのssh-agentを使うことで接続の度にパスフレーズを入力する手間を省くことができる。

– 詳細は各自で調べてください。

38