はじめに
先日、別記事でも書いたようにPCがぶっ壊れたのでイチから環境を作り直しました。
業務でBitbucketを使っているので、SSH接続したいなって思い、SSH接続のやり方を調べてると
(当然ながら) ~/.ssh/config ってファイル作って何かしらを書け!それでOK! みたいに書いてあって。
無事にSSH接続できるようになったので不満はないのですが、そもそも何故、存在しなかった~/.ssh/config
ファイルを作るだけでそれらしくSSH接続できるのかがさっぱり分からなかったので、少しだけSSHコマンドについて調べてみました。
SSH自体とかセキュリティに突っ込んでいくと途方に暮れそうなので今回はやりません。
とりあえずsshコマンドって何者?
困ったときのmanコマンド…
NAME
ssh – OpenSSH remote login client
SYNOPSIS
ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-J destination] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] destination [command]
(以下略)
とりあえず私の環境では(という表現が適切かどうかは別)、sshコマンドというのはOpenSSHが何かしてくれるものってことが分かりました。
OpenSSH
OpenBSDっていうUNIX系のフリーOSを作ってたりする団体が手掛ける、SSHプロトコルを実装したソフトウェア。なんだそうな。
MacもそうだしLinux系のOSには大体最初から入っているらしい。すごいね!
Windows10からは、windows端末にもOpenSSHが標準搭載されている。すごいね!
~/.ssh/config がないとき
# ポート名を指定する場合
ssh ユーザー名@ホスト名 -p ポート番号
# 公開鍵認証の場合
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵の名前
# ポート名及び、公開鍵認証の場合
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵の名前 -p ポート番号
sshで接続したいサーバーが1つなら別にいいけど、複数サーバーとかあると覚えるのめんどくさそう。
なので、~/.ssh/config
で設定ファイル作っておこうね、っていう話なわけ。
じゃあ、本題の~/.ssh/config
を書けばいいよって根拠はどこか。
さっきのman ssh
をポチッとした場面、OpenSSHのマニュアルページから覗いてみると各所にリンクが付いていて
その中にssh_config
というリンクがあり、下記URLに飛ぶことができます。
https://man.openbsd.org/ssh_config.5
それを見ると最初にこんなことが書いてあります。
ssh(1) obtains configuration data from the following sources in the following order:
1.command-line options
2.user's configuration file (~/.ssh/config)
3.system-wide configuration file (/etc/ssh/ssh_config)
SSH接続するときの設定をどこから検出するかの優先順位について書かれており、当然1番目はコマンド直打ちしたものですが2番目にいますね、~/.ssh/config
。こいつが根拠のようです。やっと見つけた。
なお、3つ目の/etc/ssh/ssh_config
はシステム全体の設定ファイルのことのよう。特に使わないと思う
gihubにつなぎます。Bitbucketにつなぎます。AWSにつなぎます。みたいに、個別のサーバーに対して各々設定を置く場合がほとんどだと思うので、~/.ssh/config
ファイルを作って、その中にでそれぞれの設定を書くようにしましょう。
当ページの下には、それこそ一般的に~/.ssh/config
でこんなこと書けばいいんだよと言われている各パラメータの意味合いであったりパターンについて記載があるので、ご興味あればぜひご一読を。
参考リンク