SSH大好きな皆さん、こんにちは!1年ほど前にVPSを借りてSSHを使い始めたアラカキです。
事業者ごとに最初の接続方法が異なったりローカルの環境が違ったりする中、ググって出てきた謎の操作で初めてSSHでVPSに接続できたときは感動しますよね。
ただ、一旦接続ができてしまうとその後秘密鍵の管理などには気が回らなくなってしまいます。(私です。)
この度GitHubを使い始めるにあたって改めてSSHについて調べてみると、今まで知らなかった(気にもしていなかった)情報を得ることができたのでまとめておこうと思います。
ssh
コマンドを使う人私が契約している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設定して以降ずっとそのままで使っておりました。
知らなかったのが恥ずかしいくらいなんですが、設定ファイルがあるんですね…。これでわざわざ引数をずらずら書いたりalias設定しなくて済みます。
configファイルは~/.ssh直下に配置します。
ssh (1) は以下のものから (この順序で) 設定情報を取得します:
コマンドラインオプション ユーザごとの設定ファイルシステム全体にわたる (system-wide) 設定ファイル~/.ssh/config
/etc/ssh/ssh_config
上記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について調べたのは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
次に~/.ssh/configの記述は以下のようにします。
Include conf-enabled/*
共通の設定があれば追記しけばよいでしょう。
もうお分かりだと思いますが、接続先ごとの設定ファイルのシンボリックリンクを~/.ssh/conf-enabaledに作成することで設定を有効化できます。
この点についてはもっと簡単な方法があって、接続先ごとの設定ファイルを全て同じ名前(configなど)にし、~/.ssh/configで以下のように記述することで全ての設定ファイルを読み込むことができるようです。(参考:サーバが多くSSH鍵の管理が大変です。どんな工夫をしていますか? - Qiita)
Include */config
確かにこの方法の方が手間がかからずに済むのですが、私は個人的に接続先ごとの設定を明示的に有効化したい&現在有効な設定をぱっと見で確認したいという理由から「シンボリックリンクを貼る」手順を追加しました。
GitHub用のキーペアでパスフレーズ付けたけど、tmux使ってるとssh-agentの使い勝手がめちゃくちゃ悪い…。
Twitterでシェア Facebookでシェア
chromebook で開発環境の構築(Crostini と時々Crouton)<br>その③Tmux, ほかターミナルカスタマイズ
chromebook で開発環境の構築(Crostini と時々Crouton)<br>その②Eclipse, Tomcat
Java 2
Linux 3
R 1
docker 1
python 1
書きかけ(1) DataCamp Light(1) paizaio(1) 備忘録(1)
arakaki (7)
コメント
承認待ちのコメント 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 週間 前
新しいコメント