エンジニアの転職を支援するFEnetインフラのテックブログ。ネットワークなどのITインフラ情報を中心に発信中。

  1. FEnetインフラ
  2. FEnetテックマガジン
  3. サーバー
  4. SSH接続とは?|SSH接続の仕方、パスワード認証と公開鍵認証について解説

SSH接続とは?|SSH接続の仕方、パスワード認証と公開鍵認証について解説

  • サーバー
  • セキュリティ
  • テクノロジー
公開日時:   更新日時:
SSH接続とは?|SSH接続の仕方、パスワード認証と公開鍵認証について解説
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    SSH接続


    SSHとは、Secure SHellの略でネットワークを介して別のコンピュータにログインして操作するためのソフトウェア、またはプロトコルを言います。以前はtelnetが使われていましたがセキュリティに問題があるため、SSHが使われるようになりました。

    SSH接続すると何故安全なのかと言いますと、ネットワーク中でやり取りするデータが暗号化されるため簡単には解読できなくなるからです。telnet接続ではデータが暗号化されていないため、比較的簡単に盗み見ることができてしまいます。

    以下に出てくるコマンドやプログラムは、Windows10またはLinux(Ubuntu20.10)で動作確認されたものです。なお、以下の解説ではWindows10をクライアント、Ubuntuをサーバとして解説しています。

    SSH接続の設定例

    ここでは、Ubuntu20.10をSSHのサーバとして使用するための実例を紹介します。

    SSH接続時の認証方式には、パスワード認証と公開鍵認証の2種類あります。

    個人のLAN内だけで使用するのであればパスワード認証で十分ですが、大勢の人が共有するLANや、別の場所にあるサーバにログインするような場合には「公開鍵認証」を用いるべきでしょう。

    UbuntuにSSHをインストールする

    Ubuntuにsshdがインストールされていないときは、下記のコマンドを実行してインストールしてください。公開鍵認証を利用されない場合(パスワード認証で良い場合)は、sshdをインストールするだけでSSH接続できるようになります。

    公開鍵認証に使用する鍵のペアを作成する(公開鍵を使う場合)

    下記のコマンドを実行して鍵を作成してください。Windows10で作成する場合には①を、Ubuntuで作成する場合には②のコマンドを実行してください。鍵を作る際は安全性を向上させるため、passphraseを入力するようにしましょう。

    Ubuntuのssh-keygenはデフォルトで新しい書式の鍵を出力するのですが、後ほど紹介するサンプルプログラムで使用しているライブラリが新しい書式に対応していないため、古い書式で出力するようにオプションを付けています。

    他のターミナルソフト(TeraTermなど)であれば、Ubuntuで作成した新しい書式の鍵でも使用できます。

    下記コマンドを実行すると、id_rsaとid_rsa.pubというファイルが作成されます。id_rdaが秘密鍵でid_rsa.pubが公開鍵になります。id_rsaをクライアント(端末)側に、id_rsa.pubの方をサーバ側に設定します。

    公開鍵ファイルをauthorized_keysファイルに追記する(公開鍵を使う場合)

    SSH接続でログインしたいユーザでログインして、作成した公開鍵(id_rsa.pub)を ~/.ssh にコピー後、以下のコマンドを実行してauthorized_keysファイルに追記してください。authorized_keysファイルが無い場合にはコピーでも問題ありません。

    sshdの設定ファイル(sshd_config)を変更する(公開鍵を使う場合)

    ファイル /etc/ssh/sshd_config をエディタで開いて、下記のようにそれぞれ変更してください。

    sshdをリスタート(公開鍵を使う場合)

    下記のコマンドを実行してsshdをリスタートすれば、SSH接続の公開鍵認証でログインできるようになります。ただし、パスワード認証ではログインできなくなります。

    SSHクライアントを作る


    サーバによってはターミナルソフトを使ってSSH接続すれば、コマンドシェルよりコマンドを実行することができます。更に自作プログラム(SSHクライアント)からコマンドを実行できるようになれば、更に自動化できて便利になります。

    そこでここでは、Windows10とVisualStudioのC#、SSH接続ライブラリのSSH.NETを用いた簡易ターミナルプログラム(sshTerm)を紹介します。

    この簡易ターミナルプログラムはエスケープシーケンスの処理やエラー処理(例外処理)などを端折っていますので実用的ではありませんが、SSH接続してコマンドを実行できますので参考にしてみてください。

    SSH接続サンプルプログラム(sshTerm)

    下記のプログラムはWindows10、VisualStudio2017のC#、SSH.NET、.NET Framework4.5を利用して作成されています。ホスト名やユーザ名、パスワードなど、ログインに必要な設定が正しくできれば簡易ターミナルソフトとして機能します。

    SSH.NETは、VisualStudioのNuGetパッケージマネージャを利用してダウンロード(インストール)してください。

    最後に


    C#とSSH.NETライブラリを用いた認証の仕方とコマンド入力、結果の取得方法など、参考にしてみてください。

    また、サーバによってはターミナルソフトを使ってSSH接続するとコマンドシェルを使えるようになります。

    コマンドシェル(SSHサーバ)は基本的に人が手作業で入力することを想定して作られていますので、立て続けにコマンドを送りつけると正しく動作しないことがあります。適当にウェイトを入れるように工夫しましょう。

    FEnet経験者優遇! 最短10秒!

    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ソフトウェア健康保険組合」です。

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

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

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

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

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

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

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

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

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

    新着案件New Job

    人気記事Popular Posts