SSH

この記事はSSHについて解説した記事です。会話形式のやさしい文章で「SSH」の用語のイメージを紹介した後に、採用に役立つSSHの知識を解説しています。

1分で分かる!SSHとは?

ジャバード先生!!事件です!!

ことりん君こんにちは。どうしたの?

キリンさんのところで、事件です!!

ん~??事件??いったい何があったの??

キリンさん、Webアプリケーションを作ってたじゃん?そのアプリケーションはLinuxサーバーに構築して運用していたんだよ。

あぁ、前にお話ししたよね。覚えているよ。

そう!そのLinuxサーバーはキリンさんの自宅にあるらしいのね。でも、キリンさんは外で仕事をすることも多いから、リモートで接続できるようにしていたらしいんだ。

なるほどね。

でも、どうやら最近どこかの悪い人が、勝手にキリンさんのサーバーに不正ログインしてきたみたいなんだよ…。それで一部のファイルを削除されたり盗まれちゃったみたいでさ。

あら、それはかなりの大事件だね…。

そうでしょ!だから、急いで対応しなきゃいけないんだけど、なにをどうしたらいいか分からなくてさ。だから、ジャバード先生に助けてもらいたいってわけ!

そういうことか。たぶん、キリンさんはLinuxのSSH(エスエスエイチ)設定をパスワード認証方式にしているんじゃないかな?

SSH?SSHってなに??

SSHっていうのは、Secure Shell  (セキュア シェル)という言葉の頭文字をとった言葉なんだ。少し難しい話をすると、「プロトコル」と呼ばれるものの1つだよ。

プロトコル?

そう。直訳すると「規約」とか「手順」という意味なんだ。コンピューターで通信するときは、あらかじめ決められた手順があって、各通信機器メーカーやPCがその手順にそって通信できるようにつくっているんだよ。

あぁ!通信するときの共通ルールみたいなものだね!

そのイメージでいいよ!それで、そのプロトコルで「サーバーに接続するときは安全な通信を行うため、そして遠隔地からログインできるようにするためにSSHを使いましょう」ということがきまっているわけなんだ。

ちょっと待って!もしかして、Linuxサーバーとの通信ってSSHを使わないと覗けちゃうこと?

そうそう。サーバーと通信する方法はSSH以外にTELNETっていうものがあるんだ。でもTELNETは通信が暗号化されていないから覗かれるとデータがまるまる見えちゃうんだよ。

勝手にデータを覗かれるのか…。それは嫌だな…。

そこでSSHの出番というわけだ。SSHを使えば、ネットワークを流れるデータをすべて暗号化してくれるんだよ。だから、万が一データをのぞかれても、意味がない文字が並んでいる状態になるんだ。

ふむふむ。

あと、さっきもいったけどSSHでもう1つ知っておいてほしいのは、認証方式だね。キリンさんは自宅にあるLinuxサーバーに対して外部から接続しているって教えてくれたと思うんだけど、遠隔地からサーバーに接続するときは、SSHを使うんだよ。そして、そのときに認証方法を決める必要があるんだ。

「SSHは遠隔地からログインできるようにするため」っていってたよね!認証方法っていうのはどういうこと??

ことりん君は、PCにログインするときIDとパスワードを入力しているよね?それと同じでサーバーにログインするときも認証するんだけど、その方法が複数あるんだよ。

IDとパスワード以外にもあるんだ?

そうそう。よく使われるのはことりん君のPCと同じ「パスワード認証方式」、あとはもっとセキュリティが強い「公開鍵方式」というものがあるんだ。公開鍵方式については少し難しいから、また今度説明するけど、セキュリティを高めるなら公開鍵方式を選ぶべきだね。

パスワード認証方式が危ないってこと?

そうだね。パスワード認証方式は総当たり攻撃の被害を受けやすいんだ。総当たり攻撃っていうのは、たとえば1〜8文字のパスワードの場合、すべての文字の組み合わせを試していくんだ。そうすると必ず正解にたどりつくことができるよね。

でも、そんな組み合わせを1文字ずつ試すのってかなり時間かかるんじゃないの??

最近のコンピュータは性能が向上しているから、そんなに時間かからないんだよ。

うへぇ…。こわいね。じゃあSSH設定の認証方式を「公開鍵方式」ってやつに切り替えればよさそうだね!

そうだね。とりあえず急いでパスワードを変更した後に、認証方式を「公開鍵方式」に変更したほうがいいと思うよ!

ジャバード先生ありがとう!キリンさんのところにいってくる!

うん!急いであげて!

SSHとは?採用に役立つSSHの基礎知識

SSHとは、プロトコルの1つでSecure Shellを略した言葉です。SSHを使うと2台のコンピュータ間の通信を暗号化することができます。また、遠隔地からのログインを可能とします。

サーバーは多くの場合、自社のサーバールームやデータセンターなど遠隔にあることが多いです。また、近年ではクラウド上に構築するサーバーなどもそちらに該当します。

このようなサーバーに対して作業をする際はSSH設定が必要となります。SSHの認証方式は複数ありますが、パスワード認証方式ではパスワードを突破される危険性があるため、可能な限り公開鍵による認証方式を利用する方が一般的です。

SSHを使うエンジニア

SSHは様々なエンジニアが使用します。最もサーバー上で作業をする可能性があるという意味では、インフラ(サーバー)エンジニアがあげられます。ただし、開発時にも「サーバーにログインしてデータを確認」などといった作業が発生します。そのため、サーバーサイド(バックエンド)エンジニアなども使います。

SSHを使うエンジニアの特徴と在籍業界

Linuxサーバーで何らかの作業をする人は、基本的にSSHを使うことになります。そのため、SSHを使うエンジニアに特徴はありません。ただし、実装を担当するエンジニアの中にはどういったものかを深く理解せずに使っている人も少なくありません。

なお、SSHを使うエンジニアが多く在籍している業界としては、Web業界、SIer業界をはじめ、Linuxを多用する業界があげられます。

採用する時に知っておくとよいこと

SSHから見るセキュリティ意識

応募者とSSHの話になるケースは、ほとんどないかと思います。ただ、もしセキュリティに関する話になった場合は、SSHがどういったものであるのかをそれとなく質問してみても良いかもしれません。

面談のみでエンジニアのスキルをはかるのは非常に難しいことであり、皆さんも日々苦労をされているポイントでもあるかと思います。これに限らすですが、優秀なエンジニアはしっかりとした基礎知識を身につけているものです。特に昨今、エンジニアにとってセキュリティに関する意識は必要不可欠なものです。そのため、エンジニアであれば知っておきたいキーワードでもあります。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

SSHの豆知識

SSH関連の資格

SSHに特化した資格ではありませんが、Linuxに関連する以下の資格ではSSHに関する知識を求められます。

SSHに関するニュース

SSHに対する総当たり攻撃は、古典的な攻撃手法であるものの、現在もなお多くの被害をもたらしています。その理由はパスワードを簡易的なもの (admin、12435、passwordなど)としているユーザーが多いことが原因です。

攻撃者は接続できるサーバーに対してパスワードを総当たりしていきますが、こういったよくあるパスワードを使うと、不正ログインを許してしまうリスクが飛躍的にアップします。ZDNetJapanの記事によれば、ハッカー (クラッカーともいいます)が最初に試すパスワードは決まっているそうです。

ZDNet Japan ハッカーがデバイス攻撃時に最初に試すパスワードとは

みなさんもいろいろなデバイスやWebサイトでパスワードを使っていると思います。SSHとは直接関係ありませんが、パスワードの総当たり攻撃に対するリスクという意味では共通しています。これらのリスクを回避するためには、パスワードを複雑化することはもちろんですが、二要素認証、あるいは二段階認証などの仕組みも積極的に活用するようにしましょう。

関連記事

  1. Apache

  2. マイクロサービス

  3. UNIX

  4. Go

  5. perl

  6. VB.NET