テクノロジー

sshをある程度理解する

sshとは

secure shellの略称で、サーバを遠隔操作するためのプロトコルの名称です。
そもそもプロトコルとは、データをやり取りするために定められた手順や規約、信号の電気的規則、通信における送受信の手順などを定めた規格のことを言います。

sshの最も一般的な使い方は、自分のPCからサーバへのリモートログインやファイルの転送です。専用のサーバルームや遠隔地のデータセンター内に設置されているサーバの操作は、ネットワーク越しにリモートログインして行うのが一般的です。
また、クラウド上のサーバーは物理的に触れることができないため、ネットワーク越しに操作するしかありませんので、その際にsshを利用してサーバにログインします。

sshが使われる前は、telnetが主流でした。しかしtelnetは暗号化せずにデータを送受信するため、第三者からデータが丸見えです。
sshでは認証部分を含めて、全ての通信が暗号化されているので、第三者からデータが見られず、さらに高速なので、現在はsshが主流になっています。

簡単にまとめると、「こういうルールのもとで通信を行うことをsshと呼びましょう」ということです。そのルールに従っていると以下のようなメリットがあります。

sshを利用するメリット

1. 安全な通信が可能

暗号化された通信により、大切な情報を第三者に見られることなく、安全に情報を取り扱えるようになります。
また、認証方法には公開鍵暗号方式が使われるため、なりすましによるアクセスを防ぐことが可能です。
そのため、IDやパスワード、個人情報、企業の機密情報の流出リスクなどを防げます。

公開鍵暗号とは

「公開鍵認証」とは、「公開鍵」と「秘密鍵」という2種類の鍵のペア(キーペア)を用いて認証を行う方式です。

  1. サーバにログインするユーザは、事前に自分用のキーペアを作成します
  2. そのうち公開鍵をサーバーに登録し、秘密鍵は自分のPC内に保管しておきます
  3. サーバにログインする際には、まず秘密鍵を用いて署名を作成し、サーバへ送信します
  4. サーバは受け取った署名をペアとなる公開鍵で検証し、登録済みの公開鍵での検証が成功した場合に限り、ログインを許可するという仕組みです

これらはSSHクライアントとサーバの間で自動的に行われるため、ユーザーが意識する必要はありません。

また、秘密鍵に「パスフレーズ」を設定して鍵そのものをロックすることもできます。パスフレーズとはパスワードの一種で、一般的なパスワードはあくまで単一の「単語」ですが、パスフレーズは複雑な「文章」の形を取れるため、より「強い」パスワードを作ることができます。
ロックされた秘密鍵は、正しいパスフレーズを入力しない限り使用できないため、公開鍵認証をよりセキュアに運用できます。

2. サーバ上でファイルの編集が可能

sshが普及する前に使われていたtelnetの場合は、編集したいファイルを一度ローカルディスクにダウンロードします。ダウンロードしたファイルの編集が完了したら、再度元のフォルダにアップロードをする必要がありました。

sshを利用すれば、今まで行っていたファイルをダウンロードしたりアップロードすることなく、サーバ上で直接ファイルを編集できるようになります。

sshを利用する

ご自身のPCでsshをするために、公開鍵と秘密鍵のキーペアを生成する必要があります。
以下のコマンドでキーペアを生成することができます。

ssh-keygen -t ed25519 -C "your_email@example.com"

-tで暗号化方式を変えられ、デフォルトの設定だとrsaになっているので、ed25519にします(参考
上記を行うと、以下のような画面になります。

ssh-keygen

デフォルトではホームディレクトリの.sshディレクトリ配下にid_ed25519id_ed25519.pubが生成されます。
別のディレクトリに生成したかったり、ファイル名を変えたい場合はここで指定することができます
特に変更させずデフォルトのまま進みたいのであれば、何も入力せずにEnterを押します。

ssh-keygen-enter

その後、パスフレーズの入力を促されるので、パスフレーズを入力します
パスフレーズを設定しない場合は、何も入力しないままEnterを押します。

ssh-パスフレーズ

上記のような謎の文字列が表されていれば成功です

実際にファイルが生成されているかを見てみると、.sshもしくは指定したディレクトリの配下に秘密鍵と公開鍵(.pub付きのファイル)が表示されているかと思います。

ssh-key完成

今後、サーバにssh経由でログインする場合は、上記のように鍵を生成し、公開鍵にあたる〇〇.pubの中身をコピーしてサーバに登録することで、サーバへsshすることができます。

参照

※本記事は2022年09月時点の内容です。

テクノロジーの記事一覧
タグ一覧
TOPへ戻る