【Linux】SSH でリモートからログインする方法。
SSH(Secure Shell)は、暗号化され、安全にリモートホストにログインするためのプロトコルのことです。
接続元を「クライアント」、接続先を「サーバ」とします。
今回は、クライアント・サーバともに Linux の場合を想定していますが、クライアントが Windows でも TeraTerm などのソフトを使えば SSH での接続は実現可能となります。
Contents
公開鍵暗号方式
SSH は、公開鍵暗号方式を用いてサーバへの認証を暗号化します。
サーバに対して、登録したユーザのみをログインさせ、不正なログインを防ぐことができます。
大まかな手順としては、クライアント側で「秘密鍵」と「公開鍵」を作成し、「公開鍵」をサーバに送ります。
ログイン時に、サーバ側の「公開鍵」で暗号を作成し、クライアント側に渡し「秘密鍵」で復号します。
復号したものを、サーバ側に渡し、内容が同一かどうか判断します。
具体的な設定手順は以下のようになります。
クライアント側の設定
クライアント側で、「秘密鍵」「公開鍵」の作成を行います。
以下のコマンドを実行します。
1 |
$ ssh-keygen -t rsa |
以下のようなメッセージが出るので、パスワードを2回入力します。
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user_name/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスワードは 64文字まで登録できるようです。
「.ssh」ディレクトリに、以下の3つのファイルが作成されます。
- id_rsa(秘密鍵)
- id_rsa.pub(公開鍵)
- known_hosts
「known_hosts」ファイルは、SSH 接続したことのあるサーバを記録しておくファイルになります。
サーバ側の設定
サーバ側では、「.ssh/authorized_keys」ファイルに、クライアントで作成した公開鍵「id_rsa.pub」の内容をそのままコピーし、追加します。
ログイン方法
以上の設定が完了したら SSH 接続が可能になります。
クライアント側で「ssh」もしくは「slogin」コマンドでサーバに接続します。
「ssh」と「slogin」はほぼ等しいものです。どちらを使っても差はありません。
1 |
$ ssh ユーザ名@サーバ名 |
もしくは、
1 |
$ ssh サーバ名 |
でパスワードを入力すれば接続できます。
関連記事
-
大量のテキストファイルを圧縮して Windows から Linux へコピーして解凍してみた。
大量のテキストファイルを Windows から Linux にコピーする必要があり、最初はそのまま
-
【Linux】ファイルの行数をカウントし、行数指定でファイル分割する方法。
Linux のコマンドを使って、ファイルの行数をカウントし、行数を指定してファイルを分割したときのメ
-
【Linux】cp コマンドでディレクトリごとコピーし、ファイルの上書き確認されないようにする方法
Linux で cp コマンドを使って、ディレクトリごとコピーし、同一ファイル名があった場合に上書き
-
【Linux】ファイルの文字コードを調べる方法
Linux でファイルの文字コードを調べる必要があったので、その時のメモです。 いくつか方法が
-
【Linux】WinSCP で Windows からファイルをコピーする方法。
今回は、WinSCP というソフトを使って、Windows から GUI で Linux のサーバに
-
【Linux】指定ディレクトリ以下のファイルの内容を一括置換する方法
簡単なウェブサイトを Perl 作っていて、開発環境が Windows で、公開する環境が Linu
-
【WSL】Windows10 に Linux(Ubuntu) を入れてみた。
最新の Windows10 環境であれば、簡単に Linux 環境を構築できるということで、試してみ
-
【Linux】文字化け対策に unar のインストールを試みた。
Windows で圧縮したファイルを Linux で解凍すると、文字化けが起こってしまいます。文字化
-
【Linux】ファイルの文字コードを一括変換する方法|EUC-JP ⇒ UTF-8
Linux で、あるディレクトリ内のファイルの文字コードを EUC-JP から UTF-8 に一括変
-
【Linux】SSH を切断した後でも Python を実行し続ける方法|nohub
今回、Linux のサーバに Windows から TeraTerm で SSH 接続し、Pytho