0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【ssh】~/.ssh/config ってなんなの?【OpenSSH】

Last updated at Posted at 2022-10-30

はじめに

先日、別記事でも書いたようにPCがぶっ壊れたのでイチから環境を作り直しました。
業務でBitbucketを使っているので、SSH接続したいなって思い、SSH接続のやり方を調べてると
(当然ながら) ~/.ssh/config ってファイル作って何かしらを書け!それでOK! みたいに書いてあって。

無事にSSH接続できるようになったので不満はないのですが、そもそも何故、存在しなかった~/.ssh/config ファイルを作るだけでそれらしくSSH接続できるのかがさっぱり分からなかったので、少しだけSSHコマンドについて調べてみました。

SSH自体とかセキュリティに突っ込んでいくと途方に暮れそうなので今回はやりません。

とりあえずsshコマンドって何者?

困ったときのmanコマンド…

$ man ssh をポチっと
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コマンド一例(抜粋)
# ポート名を指定する場合
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_configの最初の方
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でこんなこと書けばいいんだよと言われている各パラメータの意味合いであったりパターンについて記載があるので、ご興味あればぜひご一読を。

参考リンク

0
0
2

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?