テクノロジー
sshをある程度理解する
sshとは
secure shellの略称で、サーバを遠隔操作するためのプロトコルの名称です。
そもそもプロトコルとは、データをやり取りするために定められた手順や規約、信号の電気的規則、通信における送受信の手順などを定めた規格のことを言います。
sshの最も一般的な使い方は、自分のPCからサーバへのリモートログインやファイルの転送です。専用のサーバルームや遠隔地のデータセンター内に設置されているサーバの操作は、ネットワーク越しにリモートログインして行うのが一般的です。
また、クラウド上のサーバーは物理的に触れることができないため、ネットワーク越しに操作するしかありませんので、その際にsshを利用してサーバにログインします。
sshが使われる前は、telnetが主流でした。しかしtelnetは暗号化せずにデータを送受信するため、第三者からデータが丸見えです。
sshでは認証部分を含めて、全ての通信が暗号化されているので、第三者からデータが見られず、さらに高速なので、現在はsshが主流になっています。
簡単にまとめると、「こういうルールのもとで通信を行うことをsshと呼びましょう」ということです。そのルールに従っていると以下のようなメリットがあります。
sshを利用するメリット
1. 安全な通信が可能
暗号化された通信により、大切な情報を第三者に見られることなく、安全に情報を取り扱えるようになります。
また、認証方法には公開鍵暗号方式が使われるため、なりすましによるアクセスを防ぐことが可能です。
そのため、IDやパスワード、個人情報、企業の機密情報の流出リスクなどを防げます。
公開鍵暗号とは
「公開鍵認証」とは、「公開鍵」と「秘密鍵」という2種類の鍵のペア(キーペア)を用いて認証を行う方式です。
- サーバにログインするユーザは、事前に自分用のキーペアを作成します
- そのうち公開鍵をサーバーに登録し、秘密鍵は自分のPC内に保管しておきます
- サーバにログインする際には、まず秘密鍵を用いて署名を作成し、サーバへ送信します
- サーバは受け取った署名をペアとなる公開鍵で検証し、登録済みの公開鍵での検証が成功した場合に限り、ログインを許可するという仕組みです
これらはSSHクライアントとサーバの間で自動的に行われるため、ユーザーが意識する必要はありません。
また、秘密鍵に「パスフレーズ」を設定して鍵そのものをロックすることもできます。パスフレーズとはパスワードの一種で、一般的なパスワードはあくまで単一の「単語」ですが、パスフレーズは複雑な「文章」の形を取れるため、より「強い」パスワードを作ることができます。
ロックされた秘密鍵は、正しいパスフレーズを入力しない限り使用できないため、公開鍵認証をよりセキュアに運用できます。
2. サーバ上でファイルの編集が可能
sshが普及する前に使われていたtelnetの場合は、編集したいファイルを一度ローカルディスクにダウンロードします。ダウンロードしたファイルの編集が完了したら、再度元のフォルダにアップロードをする必要がありました。
sshを利用すれば、今まで行っていたファイルをダウンロードしたりアップロードすることなく、サーバ上で直接ファイルを編集できるようになります。
sshを利用する
ご自身のPCでsshをするために、公開鍵と秘密鍵のキーペアを生成する必要があります。
以下のコマンドでキーペアを生成することができます。
ssh-keygen -t ed25519 -C "your_email@example.com"
-t
で暗号化方式を変えられ、デフォルトの設定だとrsa
になっているので、ed25519
にします(参考)
上記を行うと、以下のような画面になります。
デフォルトではホームディレクトリの.ssh
ディレクトリ配下にid_ed25519
とid_ed25519.pub
が生成されます。
別のディレクトリに生成したかったり、ファイル名を変えたい場合はここで指定することができます
特に変更させずデフォルトのまま進みたいのであれば、何も入力せずにEnter
を押します。
その後、パスフレーズの入力を促されるので、パスフレーズを入力します
パスフレーズを設定しない場合は、何も入力しないままEnter
を押します。
上記のような謎の文字列が表されていれば成功です
実際にファイルが生成されているかを見てみると、.ssh
もしくは指定したディレクトリの配下に秘密鍵と公開鍵(.pub付きのファイル)が表示されているかと思います。
今後、サーバにssh
経由でログインする場合は、上記のように鍵を生成し、公開鍵にあたる〇〇.pub
の中身をコピーしてサーバに登録することで、サーバへssh
することができます。
参照
- https://hnavi.co.jp/knowledge/blog/ssh/
- https://www.idcf.jp/words/ssh.html
- https://pfs.nifcloud.com/navi/words/ssh.htm
- https://qiita.com/suthio/items/2760e4cff0e185fe2db9
- https://www.fu9da.com/post/change-ed25519
※本記事は2022年09月時点の内容です。