MacのSSH接続を簡単に!configファイルを作ってVPS接続を簡単にしよう!

Mac SSH接続記事用アイキャッチ

VPSブイピーエスサーバーにMacから接続する時、通常は長いsshコマンドを入力して接続します。

しかしこれを接続するたびに入力するのは非常に面倒ですし、管理するVPSサーバーが増えてくると全部覚えておくのは正直無理です。

ということで簡単に接続できるようにconfigコンフィグファイルを作成し、簡単なコマンド入力だけで接続するように設定していきましょう。

  • MacのターミナルからSSH接続を簡単に行える方法がわかる
  • 設定手順の全コマンドがわかる
  • 複数のVPSをincludeで管理する方法がわかる
スポンサーリンク
スポンサーリンク

Macのターミナルから接続は慣れないと大変

WindowsではTera TermテラタームというソフトでグラフィカルにSSH接続できますが、Macからは通常ターミナルからコマンドを使って接続します。

$ ssh ユーザー名@ホスト名 -i ~/.ssh/秘密鍵までのパス -p ポート番号

こんなコマンドですね。

ユーザー名やホスト名だけならまだしも、秘密鍵のファイル名なんかは毎度入力するのは正直面倒。

更に複数のVPSを管理するようになると、ユーザー名やポート番号がごっちゃになって無駄な時間を過ごすこと請け合いです。

configファイルを作成して設定をまとめておこう

そこで今回行うのは.sshディレクトリ直下にconfigファイルを作成して、その中に接続先のホスト名やユーザー名、秘密鍵ファイルのパス等を全て記載しておきます。

こうすることで非常に簡単なコマンドで特定のVPSに接続することができます。

更にconfigファイルには複数のVPSの情報をまとめて記述しておけるので、複数のVPSを管理することになっても情報を書くだけで簡単に管理ができるようになります。

早速設定して、一々長々しいコマンドを書いていた方式とはおさらばしましょう!

configファイル作成

まず今回の前提として、既にVPSサーバーにSSH秘密鍵接続が行える状態を想定しています。

ConoHa VPSに安全に接続!SSH接続の設定をして安全に通信しよう!
ConoHa VPSコノハ プイピーエスを利用していると、時としてどうしてもコマンド操作による設定変更等が必要になる事があります。 安全ではない通信、つまり誰でも通信を傍受できたりパスワードさえ入力すればログインできてしまう・・・こん...
VPSのrootユーザーログインを禁止しよう!超強力な権限を持たせたまま放置は絶対NG
サーバーにおけるrootルートユーザーは最も絶大な権限を持ち、言い換えればサーバーをどうにでもできる存在です。 通常rootユーザーはログインできないように設定するものなので、今回はちゃちゃっとrootユーザーのログインを禁止すると共...

もしまだVPSへの秘密鍵接続が出来ない、もしくはrootユーザーのままという方は上記の記事を参考に設定を行って下さい。

ホスト名(or IPアドレス)example1.com
ユーザー名testuser
秘密鍵のパス~/.ssh/id_rsa
ポート番号51826

サーバー側の情報はこんな感じを想定しています、適宜ご自身の環境に読み替えて下さい。

configファイルの作成と記述

configファイルの作成と同時に、ファイルに中身を記載していきます。

その前に念の為、既にconfigファイルが無いか確認しましょう。

Macのターミナルを開いて以下のコマンドを実行します。

$ ls -la ~/ssh

configが無ければOK、あれば追記という形になりますが覚えてなかったconfigファイルがあるようであればそれは果たして残しておくべきものなのかどうかしっかり確認して下さい。

$ vi ~/.ssh/config

viコマンドで新しく.ssh直下にconfigというファイルを作成し、同時に編集していきます(正確に言うと保存するまではまだ作成されていません)。

configファイルに以下の情報を書き込んで行きます。

Host example1.com
	HostName example1.com
	Port 51826
	User testuser
	IdentityFile ~/.ssh/id_rsa
	IdentitiesOnly yes
	TCPKeepAlive yes
	ServerAliveInterval 60
	ServerAliveCountMax 10

全て「設定名 値」という形です。

Host実際に接続する時に使う名前(自由に決めてOK)
HostNameVPSのホスト名やIPアドレス
PortSSHのポート番号
UserVPSのユーザー名
IdentityFile秘密鍵の絶対パス
IdentitiesOnlyIdentityFileで指定した秘密鍵に限定するかどうか(yes/no)
TCPKeepAlive接続が有効であるか確認通知を出すかどうか(yes/no)
ServerAliveIntervalサーバーから応答が無い時タイムアウトする秒数
ServerAliveCountMaxサーバーから応答がない時応答を求める回数

それぞれの設定項目はこんな感じです。

Hostの後は接続に使うコマンドにもなるのでどんな物でもOK、極論

Host a

とかでもOKです(あんまり短いとそれはそれでヒューマンエラーの元ですし、何よりどのVPSなのか区別つかないので最低限区別がつく名前がいいと思います笑)。

設定名は大文字小文字を区別するので気をつけて入力しましょう。

入力が終わったらESCキーで編集モードを抜け、:wqと入力しエンターキーで保存完了です。

configファイルは誰彼構わず編集されたら困るので、パーミッションを変えておきます。

$ chmod 600 ~/.ssh/config

これで準備OKです。

$ ssh example1.com

接続はこれだけ、めっちゃ短くできました!

Enter passphrase for key '/Users/ユーザー名/.ssh/id_rsa':

最後に秘密鍵のパスフレーズを聞かれるので、入力してEnterで接続完了です。

複数のVPSを接続する場合

複数のVPSを管理する場合、それぞれのVPS情報を記述する事で対応が出来ます。

また、その時はワイルドカード(*)を指定できるので、同一の設定項目はワイルドカードにまとめてしまえばスマートに記述が出来ます。

ワイルドカード[*
一般的にアスタリスクと呼ばれる記号ですが、コンピューターの世界では一般的に「全ての文字にマッチする」という特殊記号です。
ls -la /home/user/*.conf
例えばこんな感じで指定すると、userディレクトリ配下の.confファイル全てを表示します。
aaa.conf
bbb.conf
123456.conf
全てがヒットする為、同様の条件下のファイルやディレクトリを扱う時に便利です。
後述しますが、VPSが今後増えるようであれば以下の方法ではなく次のincludeを使った方法をオススメします。
# #から始まる行はコメントです
# まずはHost *と指定して、全ての接続に同じ設定をする場合ここにまとめて記述します。
Host *
	IdentitiesOnly yes
	TCPKeepAlive yes
	ServerAliveInterval 60
	ServerAliveCountMax 10

# これ以降は上でIdentitiesOnly等を宣言しているので記述不要、サーバー固有の設定を記述します
Host example1.com
	HostName example1.com
	Port 51826
	User testuser
	IdentityFile ~/.ssh/id_rsa

Host example2.com
	HostName example2.com
	Port 22
	User testuser
	IdentityFile ~/.ssh/id_rsa_example2

こんな感じでHostを追加していけばその分IdentitiesOnlyやTCPKeepAliveを書く回数が減るので行数が少なくなりメンテナンス性向上、ファイル容量低下に繋がります。

includeを使って複数VPSを管理する

接続するVPSが増えてきそうな場合、また少数でも個人的にはこちらの方がオススメです。

この方法はconfigファイルにはVPSの設定を書かずに、VPS毎に設定ファイルを用意してconfigファイルで読み込む(includeインクルード)という方法です。

includeを使うメリットは、もし特定のVPS接続情報が必要なくなった場合は該当ディレクトリごと削除してしまえば~/.ssh/configを編集しなくても良いという事。

つまりメンテナンス性も良く、間違って他のVPS情報を削除してしまったり編集してしまったりするヒューマンエラーが限りなく少なくなります。

  • .ssh
    • config
    • conf.d
      • example1.com
        • 秘密鍵ファイル
        • config
      • example2.com
        • 秘密鍵ファイル
        • config

こんな感じで.sshディレクトリ内にconf.dディレクトリを作り、その中に各ホスト毎のディレクトリを作ります。

ホストディレクトリにはそれぞれconfigファイルを作りVPSの接続情報を記述。

それを.ssh直下のconfigでincludeして使う、と言うイメージです。

.ssh/直下のconfigはそれぞれのファイルをincludeしているだけ、それもワイルドカードを使って自動で読み込むので、例えばexample2.comが不要になったらexample2.comディレクトリを削除してしまえば.ssh/configの方は特に編集する必要もありません。

/.ssh/config

include ~/.ssh/conf.d/**/config

Host *
	IdentitiesOnly yes
	TCPKeepAlive yes
	ServerAliveInterval 60
	ServerAliveCountMax 10

/.ssh/configの設定ファイルはこんな感じで、最初にincludeでconf.d配下の全ディレクトリからconfigファイルを読み込んでいます。

注意点として、includeは一番最初に行ってください。

Host以降に書くと、そのHost内限定の設定として読み込まれてしまい接続できません。

Hostにはワイルドカード(*)を指定し、全接続に対してこの設定を反映させます。

conf.d/ホスト別ディレクトリ/config

Host example1.com
	HostName example1.com
	Port 51826
	User testuser
	IdentityFile ~/.ssh/conf.d/example1.com/id_rsa
Host example2.com
	HostName example2.com
	Port 22
	User testuser
	IdentityFile ~/.ssh/conf.d/example2.com/id_rsa

個別のホスト別ディレクトリにはこんな感じでそれぞれのVPSの設定だけを記載したconfigファイルを作成します。

先述したように、不要になったらディレクトリごと削除してしまえば後のメンテナンスは一切不要です。

なおconf.d/以下のconfigファイルも適切なパーミッションを設定しましょう。

$ chmod 600 ~/.ssh/conf.d/**/config

これでOKです。

ターミナル接続を簡単にしてストレスなくVPSに接続しよう!

この作業は決して必須ではないんですが、行うことによって日々のVPS接続が非常に簡単になります。

覚えておくのは各接続先のHostの名前と秘密鍵のパスフレーズだけ、秘密鍵のパスを書かなくてもいいだけで大分ストレス軽減になります・・・笑。

正直作業自体は暇な時にやるぐらいで良いんですが、最初のうちにやっておくと後に長いsshコマンドを打つ必要がないので是非取り入れてください!

ConoHa VPS+KUSANAGIで始めるWordPress超高速環境

ConoHa VPS まとめ記事用アイキャッチ

当記事はWordPressを超高速化できるWordPress専用仮想マシンKUSANAGIをConoHa VPSで初心者でも簡単に導入できるというコンセプトの1記事です。

手順通りに行えば誰でもKUSANAGI環境が実現できる!を目指して作成しました。

是非合わせてお読み下さい!

ConoHa VPS+KUSANAGIで始めるWordpress講座!初心者でもステップ形式で導入が可能です!KUSANAGI managerの使い方からコマンドまで全部解説
ConoHa VPSコノハ ブイピーエスにおけるWordpressワードプレス仮想マシン、KUSANAGIクサナギを1から導入するのは非常に大変な作業です。 しかしKUSANAGIクサナギ managerマネージャーというKUSANA...
スポンサーリンク
Web
スポンサーリンク
この記事を書いた人
けんちゃん

現役サポートミュージシャン、その他FXやサイト運営で生計を立てています。テクノロジー系の事も好きだったり。
大体1ヶ月にブログだけで40代~50代サラリーマンの年収ぐらい稼いでます。

よく読まれているオススメ記事

スポンサーリンク
L'7 Records

コメント

タイトルとURLをコピーしました