Linux Mint sshサーバー設定 - メモ

動作環境と手順の範囲

  • Linux Mint Cinnamon 21.3 インストール 手順1の環境をsshサーバとして設定します

  • 何をすればssh接続できるか知りたいので、設定は最低限のものとします。本番環境で利用する時は必要に応じてセキュリティ強化する設定を追加してください。

  • 本説明中の「サーバー」はsshサーバ、「クライアント」はsshクライアントを指すものとします。

◆ sshサーバの導入

  • パッケージを見ると「ssh」「openssh-server」「openssh-client」があって「openssh-client」はデフォルトで入っていましたのでサーバーに「openssh-server」を入れます。「ssh」は「openssh-server + openssh-client」です。

sudo apt install openssh-server

◆ 設定ファイル変更

  • sshの設定ファイルは次の二つです

    • /etc/ssh/sshd_config

    • /etc/ssh/ssh_config

    • 前者「d」の付いているファイルがサーバー向け、後者「d」無のファイルはクライアントの設定ファイルです

  • サーバー向け設定ファイル「sshd_config」に下記3行を追記します。

PermitRootLogin no
PasswordAuthentication no
Port 12345
  • 各行の意味は次の通り

    • rootユーザーのログイン禁止

    • パスワードによる認証禁止 →鍵方式のみ許可

    • ポートを12345

◆ 公開鍵と秘密鍵作成と設定

ed25519形式で公開鍵と秘密鍵を作成します。.sshフォルダは無ければ作成します。ファイル名は命名規則による制限は無く適切な名前を指定

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 と入力実行します。

本作業はLinux mint環境のサーバー/クライアントどちらで実行しても問題ないです。

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/mint/.ssh/id_ed25519
Your public key has been saved in /home/mint/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:UQa1Q1UFzasPWaYOBYLkRhwOKKkvROEGMIFo7P9KS/o mint@mint-virtual-machine
The key's randomart image is:
+--[ED25519 256]--+
|Xoo ..o++o=...o=.|
|=B .  =o = o    o|
|=o.    +. + .   .|
|oo    .  . . . + |
|...     S   . *  |
|. ..       . =   |
| . o.       o o  |
|  + ..       . . |
| ..E.            |
+----[SHA256]-----+

パスフレーズを二回聞かれますが、本説明では2回共に何も入れずEnterキーを押します。

  • 作成されるファイルは次の通り。

    • id_ed25519           (秘密鍵; クライアントにて使用)

    • id_ed25519.pub (公開鍵; サーバーにて使用)

◆ サーバに公開鍵配置

  • サーバに、sshで接続する時のユーザ名でログインします。

  • 公開鍵id_ed25519.pubを「~/.ssh/authorized_keys」としてコピーします。もし既にファイルが存在すればエディタ等で公開鍵の内容を追記してください。

  • 公開鍵のファイル・パミッションを変更します。この設定を行わないと接続できません。ログインしたユーザー以外はファイルを参照/変更出来なくする設定です

chmod 700 ~/.ssh/authorized_keys

◆ クライアントに秘密鍵配置

  • クライアントに秘密鍵「id_ed25519」を置きます。場所は~/.ssh/です。コピーしたらパミッションを指定します

chmod 700 ~/.ssh/id_ed25519

◆ sshサーバのリスタート

  • 最後に「sudo systemctl restart ssh」でsshサーバをリセットして設定を反映します

sudo systemctl restart ssh

◆ sshサーバへの接続

  • クライアントからsshサーバーに接続します。

ssh mint@192.168.0.123 -i ~/.ssh/id_ed25519 -p 12345
  • ssh引数の意味は次の通り

    • 「mint@192.168.0.123」: ユーザ名@IPアドレスです。必要に応じて変更してください。ユーザ名は「接続するサーバのユーザ名」です。(サーバにて公開キーを置いた時に使用のユーザ名です)

    • 「-i ~/.ssh/id_ed25519」 : 秘密キーです。 秘密キーを置いたパスを指定します

    • 「-p 12345」: 接続するポートです。設定ファイルに追記したPort値です。

ログインすると、SHA値が表示され値が正しいか聞かれます。「yes」と入力してEnterキーを押せばログイン完了です。

ED25519 key fingerprint is SHA256:UQa1Q1UFzasPWaYOBYLkRhwOKKkvROEGMIFo7P9KS/o
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 


接続出来たら、lsコマンド等でサーバへ接続されたことを確認します
exitコマンドを入力するとsshサーバへの接続を終了します

以上です



参考

  • sshdについて
    ネットでssh記事を見るとsshdというサービスが出てきます、systemctl コマンドで確認するとsshのエイリアスの様です。最終行参照。

$ sudo systemctl cat ssh

# /lib/systemd/system/ssh.service

(途中省略)

[Install]
WantedBy=multi-user.target
Alias=sshd.service

終わりに

  • sshサーバのIPアドレスを変えた時
    接続時にエラーが発生し接続出来ません。~/.ssh/known_hostをバックアップした後にエディタ等で該当ホストの行を削除してからもう一度ssh接続します。

  • 手順に従って設定してもssh接続出来ない場合

    • sshサーバにログインして自身に対してssh localhostで接続出来るか確認します。サーバーでブラウザ等利用して外部のネットに接続できるか確認してください

    • セキュリティに問題無ければFirwallを一時的に無効化、確実に設定を反映するためリブートしてもう一度、確認して下さい。

    • Windowsから接続したい場合はPowershellなど使うより専用?の有名アプリを使う方がトラブルが少ない(不具合の原因の切り分けが容易)と思います。

他の記事

Linux Mint Cinnamon 21.3 インストール 手順1
Linux Mint Cinnamon 21.3 インストール 手順2
Linux Mint Cinnamon 21.3 日本語入力設定 - メモ
Linux Mint Cinnamon アプレット - メモ
Linux Mint Cinnamon パネル -メモ
Linux Mint Cinnamon Ubuntuを追加で入れてデュアルブート - メモ

#LinuxMint #Linux #Linux基礎

この記事が気に入ったらサポートをしてみませんか?