学外でのTSUBAME利用環境を整える
最近、研究でわりとTSUBAMEを使っていて、学外からsshを使えばどこでも研究できて今はやりのノマドっぽくてかっこいいと思ったので、その設定をメモしておく。
学外からTSUBAMEにログインするためには、秘密鍵暗号による認証が必要なんだけど公式サイトのFAQは分かりにくいし、環境によってはopenssh形式とPuTTY形式の鍵が両方必要になってきたりしてわりとややこしいので、今やる気のあるうちにメモしておかないと二度と思い出せないというのもある。
opensshが使える環境(cygwinなど)、X-serverがインストールしてあるのは前提としてあります。
まずは、openssh形式の秘密鍵と公開鍵を作るためにssh-keygenコマンドを実行する。ssh-keygenはおそらくopensshと同時にインストールされているはず。
$ ssh-keygen
これは別にリモートにアクセスした状態で行う必要はなく、ローカルでもよい。極端な話、別のPCでコマンドを実行してできた鍵ファイルをコピーしてきてもよい(秘密鍵暗号の意義が薄れるけど)。こんなこと当たり前なのかもしれないけど、一応。あとssh-keygenコマンドにはいろいろオプションつけれるけどたぶん何も要りません。
ssh-keygenを実行すると秘密鍵のパスフレーズを設定しろとか言われる。テキトウに決めていいと思うし、パスフレーズなし(そのままEnter)でもいいと思う。たぶんローカルの秘密鍵にアクセスするための符牒だと思われるけど、秘密鍵盗まれてる時点でパスフレーズを破られるのも時間の問題だし、破られにくいパスフレーズ考えてるんじゃ何のために秘密鍵暗号使ってるんだって話になるよね。
そのあと、homeディレクトリ直下の.sshに以下のファイルが生成される。(.sshはcygwinをとくにいじらずにインストールした人ならC\cygwin64\home\(ユーザー名)\.sshみたいな場所にある)
このうち、公開鍵id_rsa.pubを、リモートにアップロードしておく必要がある。普通の方法はよくわからないけど、TSUBAMEでは、TSUBAMEポータルの「公開鍵アップロード」からアップロードすればよい。
これでX-server越しにTSUBAMEへ学外ログインすることができるようになりました。
$startxwin & $ssh -Y login-t2.g.gsic.titech.ac.jp -l 99M99999
でログインすると、秘密鍵のパスフレーズを聞かれるので設定したやつを入力すれば、あとは今まで通り使えます。
次に、WinSCPとかFFFTPみたいなFTPクライアントで学外からファイルを触れるようにしたい。FFFTPはよくわからんのでWinSCPの場合。
じつは、WinSCPはさっきのssh-keygenで作ったタイプの鍵を受け付けてくれないので、WinSCP付属のPuTTYgenというソフトでWinSCPが読める形式に鍵を変換する必要がある。
まずはC\Program Files(x86)\WinSCP\PuTTYみたいな場所にあるPuTTygenを起動。
画面真ん中くらいにあるLoadを押すとダイアログが立ち上がるので、さっき作った秘密鍵(id_rsa)を読み込む。パスフレーズを聞かれるので入力。
次に、Save private keyボタンを押して、PuTTY形式の秘密鍵を保存する。ファイル名はid_rsa.ppkが無難だと思う(環境によってはid_rsaをデフォルトの鍵ファイルとして認識するっぽい)。
最後にWinSCPを立ち上げて、ホスト名とかユーザー名、パスワードを入力。パスワードに関しては、秘密鍵認証するときはどうでもいいので空欄でもいいけど普段使ってるTSUBAMEアカウントのパスワードを入れておくのがいいと思う。
設定ボタンを押して、sshタブからさっきPuTTYgenで作った秘密鍵(id_rsa.ppk)を読み込む。エージェントがどうとかあるけど気にしなくていいと思う。