最近サーバーサイドを弄り始めてsshやconfigについて触れる機会があり、理解までにかなり手間取ったので、今日は自分の知見をまとめておきます。
SSHとは何か?
SSHとは暗号や認証の技術を利用して、安全にPC→ウェブの通信を行うためのプロトコルのことです。通信プロトコルと言えば、httpが一番有名で、SSHはその一種です。
SSHでは以下の点で従来のTelnetより安全な通信が行える。 パスワードやデータを暗号化して通信できます。
HTTPなどではクライアントがサーバーに接続する時に、悪意のあるマルウェアに感染していたりすると、DNSサーバーを書き換えられたりすると接続先が意図しないサーバーに誘導される危険性がありますが、SSHではありません。
なので、このSSHを使うと、レンタルサーバーなどのリモートサーバに安全にログインできたり、機密性の高いファイルを安全に送受信することができたりします。
SSHは「Secure Shell」の訳で、リモートシェルに特化しており、公開鍵認証という仕組みを用いています。
公開鍵認証とは、データをやり取りする2者間で予め合言葉を決めておくようなイメージです。
具体的に言うと、事前にPC側で公開鍵と秘密鍵を作成し、公開鍵をサーバー側に登録し、登録された公開鍵に対応した秘密鍵を持っているクライアント(自分のPCなど)のみが接続できるという仕組みです。
これはGitで事前に公開鍵と秘密鍵を作成する必要があり手間がかかりますが、パスワードによる認証より安全な認証です。
.configとはなにか?
SSHとよくセットで出てくるのがconfigというワードです。
コメント