LoginSignup
2
0

More than 5 years have passed since last update.

サーバにあるプログラムをsshで接続してローカルのVSCodeで編集する

Last updated at Posted at 2018-11-30

まえがき

リモートサーバに置いてあるプログラムをローカルの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.pubid_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で接続先のファイルを編集するために必要なものです。
スクリーンショット 2018-12-01 2.07.56.png

インストールして、アクティブにしましょう。

VSCodeを接続可能状態にする

F1を押してコマンドパレットを開き、Remote: Start Server を選択しましょう。
スクリーンショット 2018-12-01 2.45.16.png
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

参考資料

多段SSHでも(Atom|VSCode)が使いたい!
ssh公開鍵認証を実装する

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0