diadia

興味があることをやってみる。自分のメモを残しておきます。

ssh周りを整理する

どうもsshがよく分からなかったのでそのへんを調べなおす。
wikipediaを参考にすると、以下のようにまとめられる。
まずSSHはSecureShellのことでリモートコンピュータと通信するためのプロトコルである。ネットワーク上のすべての通信が暗号化される。SSHは共通の鍵を用いて暗号化し、盗聴を防ぐ。SSHは種類がある。最も普及しているのがOpenSSHで、Linuxで標準的に利用される。(標準搭載されているってこと?)。現在単にSSHというとOpenSSHの実装系を指す。またSSHってのは、SSHサーバーとSSHクライアントの分類があるようだ。

SSHサーバー:OpenSSH, SHH Tectia Server, Reflection for Secure IT
SSHクライアント:OpenSSH, PuTTY, XShell, TeraTerm

これらのことを踏まえると、SSHをドキュメントから調べたり、本で学習する際はSSHなるものを探すのではなく、その具体的なSSHの種類を探しに行くことが必要なのだろう。こういう背景からOpneSSHのドキュメントを読むに至った。

 

そもそもなんでSSHが必要になるのか

それはデプロイに関係する。デプロイするにはリモートのサーバーにファイルを設置すること、リモートサーバーを操作することが出来なければならない。リモート操作にSSHを使う。

SSH関係の要素とその相互関係

sshd...クライアントからの接続を待つ。サービス(デーモン)。sshd_configの内容によって挙動が制御される。またsshdコマンドで挙動を制御することもできるようだ。
参考:https://man.openbsd.org/sshd#DESCRIPTION

sshd_config...sshdの挙動を制御する設定ファイル。sshdは/etc/ssh/sshd_configを読みこむ。sshd_configの仕組みは1つの設定項目につき1行で設定される。ある設定を意味するキーワードとその値で1行が構成される。#で始まる行は設定内容として反映されない。
参考:https://man.openbsd.org/sshd_config#DESCRIPTION

sshdsshd_configはSSHサーバー側のものである。

ssh-keygen...認証キーの生成、管理、および変換を司るコマンド。クライアント(ローカル)側で認証キーを作成し、認証キーのうち公開鍵(.pub)をサーバー側に渡す。このファイルの内容はauthorized_keysに書き込む流れになる。

authorized_keys...サーバー側の認証ファイル。ここに記載されたリストの内容は、認証キーを使ってログインすることができる。ログイン認証はクライアント側が秘密鍵をサーバーに渡し、サーバー側は公開鍵(パブリックキー)を使い認証可否を判断する。

別の言い方をすればauthorized_keysファイルには公開鍵の内容が書かれている。この公開鍵に対応した秘密の鍵をクライアントがサーバーに渡したときにクライアントは認証される。以下のコマンドはsshのサーバー環境を整える時に使う。単に公開鍵をauthorized_keys内に記入しているに過ぎない。

mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys


参考:https://man.openbsd.org/ssh.1#AUTHENTICATION