ネプラスのテックブログ。ネットワーク、クラウド、サーバなどのITインフラ情報を中心に発信中。

  1. ネプラス インフラエンジニア採用
  2. テックマガジン
  3. サーバー
  4. SSHとは?設定から接続方法まで詳しく解説

SSHとは?設定から接続方法まで詳しく解説

  • サーバー
  • セキュリティ
  • テクノロジー
公開日時:   更新日時:
SSHとは?設定から接続方法まで詳しく解説
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    SSHとは?


    SSHとはSecure Shellと言う言葉から名付けられた、安全にリモート接続を行うためのプロトコルです。他のリモート接続方法としてTelnetなどがありますが、これらでリモート接続を行う場合は、通信内容はそのままネットワークに流れることになります。SSHを用いれば、パスワードを含む全ての通信内容は暗号化され、通信経路上における盗聴やデータの改ざんを防ぐことができます。また、認証に鍵データを利用することで、パスワードの漏えいによるなりすましも防ぐことができます。この記事では、SSH通信で公開鍵認証方式によるリモート接続が出来るようになることを目標とし、接続先となるSSHサーバーの設定や、接続元となるパソコンなどのコンピュータ上でのsshコマンドの使い方や、鍵データの作成方法を説明します。

    SSHサーバーの起動方法

    SSH接続を行うためには、接続を受け付けるSSHサーバーが必要です。クラウドサーバーやレンタルサーバーを利用していて、SSHで接続することが前提となっている場合には、SSHサーバーは既に起動しているはずです。この記事では、Ubuntu 18.04.3を最小構成でインストールした状態から始めることを想定して説明します。SSHサーバーのインストール方法や設定ファイルの場所は、Linuxディストリビューションによって異なる可能性があります。ご了承ください。

    SSHサーバーのインストール

    Ubuntuを最小構成でインストールした場合には、SSHサーバーはインストールされていません。以下のようにaptコマンドでインストールします。

    インストールした直後からSSHサーバーは起動した状態になります。systemctl status sshdと入力して確認しましょう。

    Active: active (running)と表示されていれば、SSHサーバーは起動しています。もし、Active: inactive (dead)と表示されている場合は、インストールはされているが起動していない状態です。その場合はsudo systemctl start sshdと入力して、SSHサーバーを起動してください。注意点を説明しますと、SSHサーバーが起動している状態ですでに、パスワードを利用して外部からSSH接続ができるようになっています。インターネット経由で外部からの接続を受け付ける環境では、この瞬間からSSHサーバーのデフォルトの待ち受けである22番ポートに向かって、アタック(ログインを試みようとする攻撃)が行われる可能性があります。よって最初の設定作業を行う場合は、インターネットからの接続を受け付けない環境か、ファイアウォールなどの機能で、不正なアクセスを防ぐ環境下で行ってください。

    パスワード使用したsshコマンドによるログイン

    これからの設定作業を行うために、まずはパスワードを使用してsshコマンドでログインします。LAN内の他のコンピューターなどから、SSHクライアントアプリケーションを使用して接続してください。ここでは別のコンピューターから、Linuxのsshコマンドを使用して接続します。この記事では、後の鍵ファイルを使用する手順のために、まずはパスワードによる接続を行っていますが、もし公開鍵データをクライアントからサーバーに送信する方法が他に存在する場合は、後述するSSHサーバーの設定で、インストール直後からパスワードによるログインを無効にした方がより安全です。sshコマンドでログインするには、引数にユーザー名と接続先のサーバー名またはIPアドレスを@で繋いだ文字列を指定します。

    クライアントから初めてアクセスするサーバーの場合、"Are you sure ... connecting?"と確認が出ますが、yesと入力してください。そして、続いて"[email protected]'s password:"と表示されパスワードの入力を求められます。指定したLinuxユーザーのパスワードを入力してください。なお、キーボードからタイプしても、パスワードの文字列は表示されないようになっています。ログインに成功すると、接続先のサーバーのシェルが起動し、コマンドラインで入力を受け付ける状態になります。パスワードでログインできることが確認できたら、ログアウトして大丈夫です。コマンドラインでexitと入力してログアウトし、SSHクライアントを終了してください。

    鍵ファイルを使用したsshコマンドの実行方法

    ここまででSSHサーバーが正常に稼働し、パスワードでログインできるようになりました。しかし、パスワードによる認証はパスワードが漏えいする可能性や、パスワードを予測してログインを試みるような攻撃を受ける可能性があります。そこで、より安全性を高めるために鍵ファイルを使用してSSH接続を行い、パスワードによるログインを無効にします。

    鍵ファイルの生成

    SSH接続に使用する鍵ファイルを作成します。以下の作業は、クライアントマシン上で実行してください。環境はクライアント側もLinuxを想定しています。もし、クライアント側の環境にSSHクライアント用のパッケージがインストールされていない場合は、インストールしてください。Ubuntuの場合はsudo apt install openssh-clientでインストールできます。鍵ファイルの生成にはssh-keygenコマンドを使用します。

    -tオプションは作成する鍵の種類です。rsaを指定してください。-bオプションは鍵の大きさです。値が大きいほど複雑な鍵となり安全性が増しますが、4096という数字で十分です。-fオプションは生成される秘密鍵ファイルの名前です。任意の名前でよいですが、ここではmy_ssh_keyという名前にします。コマンドを実行すると、Enter passphrase (empty for no passphrase):という表示でパスフレーズの入力を求められます。パスフレーズを設定すると、鍵を使ってSSH接続をする際にそのパスフレーズを入力する必要があります。つまり鍵を使うためのパスワードです。この手順ではパスフレーズは設定せず、入力無しでSSH接続することとします。パスフレーズを設定しない場合は、何も入力せずそのままエンターキーを押してください。確認用のEnter same passphrase again:の入力もそのままエンターキーを押してください。コマンドの実行が完了すると、カレントディレクトリに指定した通りmy_ssh_keyという鍵ファイルと、もう一つmy_ssh_key.pubというファイルの合計2ファイルが作成されます。my_ssh_keyはSSH接続する際に使用する秘密鍵です。このファイルは利用者だけが持つべきもので、外部に公開してはいけません。対して、my_ssh_key.pubは公開鍵です。このファイル内の情報を接続先サーバーに登録して、認証を行うことになります。

    公開鍵の登録

    SSHサーバーに鍵ファイルを用いて接続をするためには、事前にクライアントが使用する秘密鍵と対になる公開鍵をサーバーに登録しておく必要があります。ここでは登録を行うために、まずはscpコマンドを使用してパスワードを用いたSSH接続で公開鍵ファイルをサーバーに送信することとします。

    scpコマンドは第1引数にコピー元のファイル、第2引数に接続先ユーザー名@接続先ホスト名またはIPアドレス:接続先のコピー先ディレクトリと指定します。これで公開鍵が接続先サーバーに送信されましたが、まだ登録は完了していません。引き続きサーバー側で作業を行います。先ほどの作業で、サーバー側のuser1のホームディレクトリにはscpでコピーされたmy_ssh_key.pubがあります。この公開鍵の内容を~/.ssh/authorized_keysファイルに追記してください。

    初めてこの作業を行う場合は、まだauthorized_keysが存在しておらず、上記コマンドを実行することで作成されます。これでサーバー側の登録作業は完了です。正しく登録されていれば、先ほど生成した秘密鍵を使ってクライアントからSSH接続ができます。

    -iオプションで秘密鍵ファイルを指定することで、パスワード無しでログインできるようになります。

    パスワード接続を無効にする

    鍵ファイルを使用したSSH接続に成功したならば、パスワードによるSSH接続を無効にしてセキュリティを高める方がよいでしょう。そのためには、SSHサーバーの設定ファイルを編集します。SSHサーバーの設定ファイルは/etc/ssh/sshd_configです。これをテキストエディターで開いてください。

    #PasswordAuthentication yesという行があります。デフォルトではパスワードログインを許可する設定になっていますので、PasswordAuthentication noという行を追加してパスワードログインを無効にします。設定ファイルの編集が完了したら、SSHサーバーをリロードしてください。

    サーバー管理はSSHでセキュアに

    SSHサーバーのインストール/起動方法から、公開鍵認証方式によるSSHログインまでを説明してきました。Linuxサーバー管理においては、新たにユーザーを登録しSSH接続を許可することもあるでしょう。SSHサーバーの設定方法やクライアントの接続方法を知ることは、正しくシステムを管理するための第一歩とも言えます。また、コンピューターやサービスのクラウド化が進む現在、クライアントとしてインターネットを経由して遠隔地にあるサーバーに接続する機会は増えています。そのような環境において、通信内容を守るためにはSSHによる接続は必須です。コンピューターの性能の向上や技術の向上により、パスワードによる認証は安全性が高いとは決して言えなくなっています。セキュアにリモート接続を行うために、ぜひ公開鍵認証方式でSSHを利用することをお勧めします。

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    オンライン面接も随時受付中。ぜひお気軽にご応募ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    新着案件New Job

    CCNA取得者歓迎!案件・求人はこちら