まえがき
リモートサーバに置いてあるプログラムをローカルのPCから編集する必要があり、これまでsshを通じてJupyter Notebookで編集してきました。
しかし、これでは補完機能が使えなくさすがに嫌になってきたので、sshの接続先のファイルをローカルのエディタから書き換えられる手段が欲しいと思い、色々調べたので、自分がやってきたことを細かくメモします。
環境
Ubuntu 16.04 LTS
ローカル側でやること
公開鍵認証を設定する
すでに設定済みの人はいいですが、公開鍵認証をローカル側で設定する必要があります。
公開鍵と秘密鍵を生成しましょう。
$ ssh-keygen
Enter file in which to save the key
と聞かれるので、特に鍵の名前をつける必要がなければ何もせずエンターを押します。
するとEnter passphrase (empty for no passphrase
と聞かれるので、任意のパスワードをいれます。(いれなくても大丈夫です)
ここまでくると、 ~/.ssh/
の中にid_rsa.pub
とid_rsa
の2つが生成されます。これが、公開鍵と秘密鍵です。
まず、秘密鍵の設定をします。
秘密鍵は、ローカル上のどこに置いてもいいですが、セキュリティの観点からパーミッションを600にする必要があります(ファイルの変更権限を所有者のみにするため)。
$ chmod 600 id_rsa
次に公開鍵についてです。リモート側の.ssh/
に移動する必要があるので移動しましょう。(ローカル側の共通鍵は削除しても構いません)
移動したら、id_rsa
の名前をauthorized_keys
に変更します。この際、先人のファイルがあれば、下の行に追加して上書きしましょう。
$ mv id_rsa.pub authorized_keys # まだない場合
$ cat id_rsa.pub >> authorized_keys # すでにある場合
SSHポートフォワーディングを設定する
sshでファイルをリモートサーバに転送するために設定します。
HOST myserver(好きな名前で)
Hostname リモートのホスト名
User リモートのユーザ名
IdentityFile 秘密鍵のパス(上で作った人は ~/.ssh/id_rsa)
IdentitiesOnly yes
ForwardAgent yes
RemoteForward 52698 127.0.0.1:52698
VSCodeに拡張機能《Remote VSCode》を追加する
VSCodeで接続先のファイルを編集するために必要なものです。
インストールして、アクティブにしましょう。
VSCodeを接続可能状態にする
F1を押してコマンドパレットを開き、Remote: Start Server を選択しましょう。
VSCodeの右下に電波を受信していそうなマークが出ていれば大丈夫です。
VSCodeを起動すると同時にONにしたい場合は、File > Preferences > Settings を開き、remoteと検索した後、Remote VSCodeを選択してからLaunch the server on start up. にチェックを入れましょう。
リモート側でやること
rmateのインストール
rmateを動かすのにRubyが必要なので、なければダウンロードしてください。
rmateをインストールします。
$ curl -o /usr/local/bin/rmate https://raw.githubusercontent.com/aurora/rmate/master/rmate
$ sudo chmod +x /usr/local/bin/rmate
動作確認
VSCodeのterminalを操作してプログラムを開きましょう
$ ssh myserver
$ rmate hoge.py
参考資料