【VPS初心者向け】~/.sshディレクトリの私的運用方法
arakaki Linux 2019-08-17 229 のコメント

はじめに

 SSH大好きな皆さん、こんにちは!1年ほど前にVPSを借りてSSHを使い始めたアラカキです。

事業者ごとに最初の接続方法が異なったりローカルの環境が違ったりする中、ググって出てきた謎の操作で初めてSSHでVPSに接続できたときは感動しますよね。

ただ、一旦接続ができてしまうとその後秘密鍵の管理などには気が回らなくなってしまいます。(私です。)

この度GitHubを使い始めるにあたって改めてSSHについて調べてみると、今まで知らなかった(気にもしていなかった)情報を得ることができたのでまとめておこうと思います。

対象読者

  • Linux(またはMac)のターミナルからsshコマンドを使う人
  • とりあえず接続できたけどconfigファイル?何それ?な人
  • 秘密鍵をどう管理すればよいか分からない人

今までの接続方法

私が契約しているVPSは以前の記事でも紹介したWebARENAというところなんですが、SSH接続に関して公式のガイドでは「契約者ダッシュボードでキーペアを作って秘密鍵をダウンロードしてTera Termでアクセスしてね」ぐらいしか説明されていませんでした。

参照:WebARENA VPSクラウド|はじめてのVPSクラウド

他方で、私の開発環境はLinux(今はDebian)なのでターミナルから接続したい!ということで秘密鍵はてきとーにホームディレクトリに置き、

ssh -i ~/foobar.pem username@255.255.255.255

こんな感じでコマンド打って接続確認できた後、

alias webarena='ssh -i ~/webarena.pem username@255.255.255.255'

こんな感じでalias設定して以降ずっとそのままで使っておりました。

configファイルを書こう!

 知らなかったのが恥ずかしいくらいなんですが、設定ファイルがあるんですね…。これでわざわざ引数をずらずら書いたりalias設定しなくて済みます。

 configファイルは~/.ssh直下に配置します。

ssh (1) は以下のものから (この順序で) 設定情報を取得します:

コマンドラインオプション

ユーザごとの設定ファイル
~/.ssh/config

システム全体にわたる (system-wide) 設定ファイル
/etc/ssh/ssh_config

参照:SSH_CONFIG (5)

 上記WebARENAへの接続だと以下のような設定になります。

Host webarena 
HostName 255.255.255.255
User username
IdentityFile webarena.pem
IdentitiesOnly yes

このときIdentityFileキーワードで指定するwebarena.pemファイルも~/.ssh直下に配置しています。manページではIncludeキーワードの説明でしか明記されていませんが、相対パスで指定した場合には~/.sshを基準に解釈されるようです。

絶対パス名でないファイル名は、ユーザ設定ファイルの場合は~/.ssh以下のパスを指すと解釈され、システム設定ファイルの場合は/etc/ssh以下のパスを指すと解釈されます。

参照:SSH_CONFIG (5)

configファイルを分割して
~/.sshディレクトリをいい感じに運用する

さて、今回SSHについて調べたのはGitHubを使うにあたって新たに秘密鍵の管理が必要になったからなのでした。今後も別のVPS・クラウドやGitのホスティングサービスを利用することを考えて、~/.sshディレクトリ内はできるだけ分かりやすく整理しておきたいものです。

幸いなことに、現在のsshコマンド(OpenSSH)の設定ファイルはIncludeキーワードで分割した設定ファイルを読み込むことができます。これを利用していい感じのディレクトリ構成と運用方法を考えてみました。

ディレクトリ構成

結論からですが、最終的に~/.sshディレクトリ内は以下のような構成になります。

.
├── conf-enabled
│   ├── github.conf -> /home/username/.ssh/github/github.conf
│   └── webarena.conf -> /home/username/.ssh/webarena/webarena.conf
├── config
├── github
│   ├── github.conf
│   ├── id_rsa_github
│   └── id_rsa_github.pub
├── known_hosts
└── webarena
├── webarena.conf
└── webarena.pem

以下順にみていきましょう。

接続先ごとの設定と秘密鍵

まず~/.ssh直下に接続先ごとのディレクトリを作り、その中に設定ファイルと秘密鍵を配置します。例えば~/.ssh/webarena/webarena.confの場合、記述内容は秘密鍵のパスだけ変更して以下のようになります。

Host webarena 
HostName 255.255.255.255
User username
IdentityFile webarena/webarena.pem
IdentitiesOnly yes

configファイルの記述

次に~/.ssh/configの記述は以下のようにします。

Include conf-enabled/*

共通の設定があれば追記しけばよいでしょう。

接続先ごとの設定を有効化

もうお分かりだと思いますが、接続先ごとの設定ファイルのシンボリックリンクを~/.ssh/conf-enabaledに作成することで設定を有効化できます。

この点についてはもっと簡単な方法があって、接続先ごとの設定ファイルを全て同じ名前(configなど)にし、~/.ssh/configで以下のように記述することで全ての設定ファイルを読み込むことができるようです。(参考:サーバが多くSSH鍵の管理が大変です。どんな工夫をしていますか? - Qiita)

Include */config

確かにこの方法の方が手間がかからずに済むのですが、私は個人的に接続先ごとの設定を明示的に有効化したい&現在有効な設定をぱっと見で確認したいという理由から「シンボリックリンクを貼る」手順を追加しました。

余談

GitHub用のキーペアでパスフレーズ付けたけど、tmux使ってるとssh-agentの使い勝手がめちゃくちゃ悪い…。

参考記事

コメント

承認待ちのコメント 5 年, 8 ヶ月 前

承認待ちのコメント 4 年, 9 ヶ月 前

承認待ちのコメント 4 年, 9 ヶ月 前

承認待ちのコメント 4 年, 8 ヶ月 前

承認待ちのコメント 4 年, 8 ヶ月 前

承認待ちのコメント 4 年, 8 ヶ月 前

承認待ちのコメント 4 年, 8 ヶ月 前

承認待ちのコメント 4 年, 8 ヶ月 前

承認待ちのコメント 4 年, 8 ヶ月 前

承認待ちのコメント 4 年, 8 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 4 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 3 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 2 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年, 1 ヶ月 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 4 年 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 11 ヶ月 前

承認待ちのコメント 3 年, 10 ヶ月 前

承認待ちのコメント 3 年, 10 ヶ月 前

承認待ちのコメント 3 年, 10 ヶ月 前

承認待ちのコメント 3 年, 10 ヶ月 前

承認待ちのコメント 3 年, 9 ヶ月 前

承認待ちのコメント 3 年, 9 ヶ月 前

承認待ちのコメント 3 年, 9 ヶ月 前

承認待ちのコメント 3 年, 8 ヶ月 前

承認待ちのコメント 3 年, 7 ヶ月 前

承認待ちのコメント 3 年, 7 ヶ月 前

承認待ちのコメント 3 年, 7 ヶ月 前

承認待ちのコメント 3 年, 4 ヶ月 前

承認待ちのコメント 3 年, 4 ヶ月 前

承認待ちのコメント 3 年, 4 ヶ月 前

承認待ちのコメント 3 年, 4 ヶ月 前

承認待ちのコメント 3 年, 4 ヶ月 前

承認待ちのコメント 3 年, 3 ヶ月 前

承認待ちのコメント 3 年, 1 ヶ月 前

承認待ちのコメント 3 年 前

承認待ちのコメント 3 年 前

承認待ちのコメント 2 年, 10 ヶ月 前

承認待ちのコメント 2 年, 10 ヶ月 前

承認待ちのコメント 2 年 前

承認待ちのコメント 2 年 前

承認待ちのコメント 2 年 前

承認待ちのコメント 1 年, 10 ヶ月 前

承認待ちのコメント 1 年, 10 ヶ月 前

承認待ちのコメント 1 年, 10 ヶ月 前

承認待ちのコメント 1 年, 9 ヶ月 前

承認待ちのコメント 1 年, 3 ヶ月 前

承認待ちのコメント 7 ヶ月, 1 週間 前

承認待ちのコメント 6 ヶ月 前

承認待ちのコメント 4 ヶ月, 2 週間 前

承認待ちのコメント 4 ヶ月, 2 週間 前

承認待ちのコメント 4 ヶ月, 2 週間 前

承認待ちのコメント 4 ヶ月, 2 週間 前

承認待ちのコメント 4 ヶ月, 1 週間 前

新しいコメント

必須

記入が必要です(公開はされません)

オプション

© 2018 あらがきじゃなくてあらかき
arakaki.tokyo