フルスタックエンジニアのノウハウ
2021.06.19    2022.06.11

SSHとは?

この記事の動画版はこちら(画像クリックでYoutubeに飛びます)

チャンネル登録お願いします!


SSHとは?


結論から先に言うと、SSHとは「Secure SHell」の略で、ネットワークを介して別のコンピュータを遠隔操作するためのツールです。




インフラエンジニアや、映画に登場するハッカーがこのような黒い画面にコマンドを打ち込んで

コンピューターを遠隔操作している姿を見たことがあるかもしれません。




これは、SSHというツールを使って行っています。


同じようなツールに「Telnet」というものもあり、Telnetを使っても同じようにサーバーを遠隔操作することができます。


SSHとTelnetの違いは、通信データが「暗号化されるか」「されないか」になります。




Telnetは、通信データが暗号化されずそのまま送受信されるのに対し、SSHは通信データが全て暗号化されます。


遠隔操作を行う際は、ログインする際のパスワード情報だったり、サーバー内のファイル情報など、様々なデータがネットワークを介して送受信されます。


万が一、ネットワーク上を流れるデータを覗き見(盗聴)されてしまった場合、通信データが暗号化されていないと、重要なデータが見られてしまう危険性がありますが


SSHは、通信データが全て暗号化されるため、Telnetよりも安全という訳です。



どんなときに使うのか?


SSHを使うのは、主にサーバーのセットアップやメンテナンス作業を行う場合です。


レンタルサーバーの場合は、ブラウザで管理画面にアクセスして画面上で簡単に設定操作を行うことができますが、AWSなどのクラウドサーバーを利用する場合は、サーバーのセットアップやメンテナンス作業は、基本的にコマンドを入力して行う形になります。


その分、自分の好きなようにセットアップができるため、自由度が高いというメリットがあります。


以下ような、サーバーに関する作業は「SSH」を使って自分のPCからリモートで操作を行います。


・新規にサーバーを構築する際に、必要な初期設定を行う
・WebサーバーやDBサーバーをセットアップする
・開発したWebアプリを本番サーバーに設置する
・サーバーがダウンしてしまった場合に復旧作業を行う


CRONの登録作業などもそうですね。


関連記事

CRONとは?


このように、本格的なサーバーを管理・運営していく際には、SSHは必ず使うツールになりますので覚えておきましょう!



SSHの使い方


SSHを使ってサーバーを遠隔操作する手順を簡単にご説明します。


SSHでサーバーを遠隔操作するには、PCに導入されている「SSHクライアント」というソフトを使います。


Windowsならコマンドプロンプト、Macならターミナルを起動し、「ssh」と入力することで使えます。


基本的な書式はこのようになります。




sshの後に、サーバーにログインするための「ユーザー名」と「サーバーのアドレス」を@で区切って指定します。


このコマンドを実行すると、指定したサーバーにリモート接続され、アクセスが許可されたユーザーの場合はパスワードを聞かれます。



正しいパスワードを入力して、Enterを押すと



このように、サーバーに接続されます。


これで、指定したサーバーの中に入っている状態になりますので、ここで操作コマンドを実行することで、サーバーを操作できます。


ちなみに、SSH接続はサーバー側も対応していないと行うことはできません。


この例では、さくらインターネットのレンタルサーバーに接続していますが、このようにレンタルサーバーでもSSH接続が行えるものもありますので、使っているサーバーがSSH接続に対応しているかどうかチェックみてください。


サーバーの操作を行うためのコマンドは、例えば、「ls」というコマンドを実行すると、現在の階層にあるファイルやフォルダの一覧を表示してくれます。


実行すると、このようにファイルやフォルダの一覧が表示されます。



遠隔地にあるサーバーの中を表示しているという訳ですね。


「cd」は階層を移動するコマンドです。


cdの後に続けて移動したいディレクトリを指定すると、その階層に移動することができます。



「cat」はファイルの内容を閲覧するコマンドです。


catの後に続けてファイル名を指定すると、そのファイルの内容を閲覧することができます。



このような感じで、サーバーコマンドを使いながら設定作業などを行っていきます。


この辺りのコマンドは、「Hacknet」のゲーム動画でも使用しましたね。


ゲームではありますが、コマンドを使用してサーバーを操作しているイメージが分かるかと思いますので是非見てみてください。

・ハッキング・シミュレーターゲーム「Hacknet」をやってみた


また、他にどんなサーバーコマンドがあるか興味がある場合は、主要なサーバーコマンドを聞き流しで学べる「聞き流しリファレンス」動画も作成していますので、こちらも是非ご参考にしてみてくださいね。

【聞き流し/作業用】聞き流しリファレンス 「主要Linuxサーバーコマンド編」



お薦めのSSHクライアント


先程の例では、PCに標準で入っているSSHクライアントを使用しましたが、標準のもの以外にも便利なSSHクライアントがリリースされています。


例えば、Windowsの場合は、以前紹介した「RLogin」というソフトが使いやすいのでお薦めです。


RLoginについてはこちらの記事で紹介しているので是非使ってみてください。


関連記事

Windowsでおすすめのターミナルソフト「RLogin」



SSHの認証方式


SSHで、サーバーにリモートログインする際は、先程行ったようなパスワードでの認証の他に「公開鍵認証」という認証方式もあります。


これは、接続する度にパスワードを入力するのではなく「公開鍵」と「秘密鍵」という仕組みを使ってより安全に接続を行う方法です。


公開鍵認証の仕組みついては、こちらの記事で詳しく解説していますので、併せて学習してみてください。


関連記事

SSH 公開鍵認証とは?



まとめ


・SSHとは、別のコンピュータを遠隔操作するためのツールのこと
・Telnetと異なり、通信が全て暗号化される
・サーバーセットアップやメンテナンスでは必須ツール
・パスワード認証と公開鍵認証という2つの認証方式がある


おすすめ記事