LoginSignup
76
70

More than 5 years have passed since last update.

多段SSHでも(Atom|VSCode)が使いたい!

Last updated at Posted at 2017-03-16

2018-01-12更新:VSCode派になったので、VSCodeでの方法を追加しました。

背景

僕はコーディングはGUIなエディタでしたいポリシーなので、ローカルだろうがSSHだろうが2段SSHだろうが3段SSHだろうが(Atom|VSCode)を使います。

今回多段SSHのファイルを編集しないといけなくなったため、その時に行った作業をメモしときます。

以下では分かりやすいように踏み台サーバーをserver1、目的のサーバーをserver2としましょう。(いらすとやに圧倒的感謝!)

サーバー構成

方法の検討

Atomでリモートのファイルを変更したい時に思いつく方法はこんな感じです。

1. remote-ftpもしくはsftp-deploymentを使う

これらはAtomでFTPやSFTPが使えるクライアントパッケージです。多少の機能の違いはありますが、どちらもローカルとリモートで同期が取れたりするので直接編集するのと変わらない感覚です。
ただこれらには致命的な欠点があります。多段SSHに非対応なのです。大事なことなのでもう一度言います。なんと、多段SSHに非対応なのです。

2. rmate + remote-atomで直接編集する

リモートで、rmate hoge とするだけでhogeがローカルのAtomで開かれ、編集できます。vimを起動するのと同じ感覚ですね!

普段は1番の方法を使っているのですが、欠点に書いたように多段SSHに非対応なので、今回は2番の方法の手順を書きます。

導入手順

リモートにrmateを導入する

まず通常どおりserver1を踏み台にserver2にSSHしましょう。
rmateを動かすのにRubyが必要なので入っていない人は入れといてください。
rmateをPATHの通ってる場所にダウンロードします。特に理由がなければ/usr/local/binで良いでしょう。

$ # server2にて
$ curl -o /usr/local/bin/rmate https://raw.githubusercontent.com/aurora/rmate/master/rmate
$ sudo chmod +x /usr/local/bin/rmate

[Atom] ローカルのAtomにremote-atomを入れる

Atomのパッケージインストーラ(Settings > Install)で"remote-atom"を検索してインストールしましょう。
atom package installer

[VSCode] ローカルのVSCodeにRemote VSCodeを入れる

スクリーンショット 2018-01-12 19.16.35.png

SSHポートフォワーディングの設定

rmateをつかってローカルのAtomにデータを転送するためにSSHのポートフォワーディングを使います。ポートはデフォルトでは52698番が使わますが、変更も可能です。
ローカルの.ssh/configに以下の設定を追加します。ファイル未作成の人は作成してください(permissionは600)。また、公開鍵認証はすでに設定してある前提です。

Host server1
    HostName        server1のホスト名
    User            server1のユーザー名
    IdentityFile    server1の秘密鍵のパス
Host server2
    HostName        server2のホスト名
    User            server2のユーザー名
    IdentityFile    server2の秘密鍵のパス
    ProxyCommand    ssh -W %h:%p server1
    RemoteForward   52698 127.0.0.1:52698

使ってみる

[Atom]

Atomを起動した状態で

$ ssh server2
$ rmate hoge

これでhogeがAtomで開かれれば成功です。

[VSCode]

VSCodeを起動した状態でコマンドパレットを開き、Remote: Start Serverを選択します。
スクリーンショット 2018-01-12 19.19.38.png

エディタの右下にこんなマークが出ていたら待ち受けています。
スクリーンショット 2018-01-12 19.19.53.png

$ ssh server2
$ rmate hoge

これでhogeがVSCodeで開かれれば成功です。

おまけ

.bashrcとかにこれを書いておくとatom感、VSCode感が増します。

alias ratom=rmate
alias rcode=rmate

幸せな(Atom|VSCode)ライフを!

※Sublime Textでもrsubパッケージを使うことで同じことが出来ます。

76
70
3

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
76
70