Login Server#

kobe-kosen-robotics.orgのサーバーへログインするとできること#

ホームページの編集や再起動などができる
主に,Linuxを対象にしている.(Windowsも同様の手順でTerminalから可能.でも,sshの有効化方法が違ったり,コマンドのPATH等を少し工夫する必要があるのでネットなどを参考に)

システムの構成#

$ ssh admin@kobe-kosen-robotics.org とパスワードを使ったログインはユーザー名とパスワードの総当たり攻撃で不正ログインの可能性がある
本システムはSSHの鍵認証を用いて,登録された人(PC)のみが外部サーバーにアクセスできる

SSHのインストールの確認#

$ ssh -V # version check

基本的に実行の必要ないが,入っていない場合は実行する.

$ sudo apt update && sudo apt install -y ssh

SSH鍵の生成#

公開鍵と秘密鍵はホームディレクトリーの.sshフォルダに保存される

要確認::絶対に気をつけなければいけない!!
 秘密鍵 [ id_rsa ] : 誰にも漏らしてはいけない
 公開鍵 [ id_rsa.pub ] : 他の人に渡してもいい

$ mkdir -p ~/.ssh/kkr_server
$ ssh-keygen -t ed25519 -f ~/.ssh/kkr_server/id_rsa
# コマンド実行後に求められるパスフレーズは設定すべき(Enterで省略可)
# ssh-keygenコマンドのオプション
# -t [type] : 生成する鍵の暗号方式を指定できる
# -f [output_keyfile] : sshkeyの保存先とファイル名の指定できる
# -C [comment] : コメント

生成された鍵の暗号方式の確認

$ ssh-keygen -l -f ~/.ssh/kkr_server/id_rsa.pub
$ mkdir -p .ssh/kkr_server
$ ssh-keygen -t ed25519 -f .ssh/kkr_server/id_rsa
# コマンド実行後に求められるパスフレーズは設定すべき(Enterで省略可)
# ssh-keygenコマンドのオプション
# -t [type] : 生成する鍵の暗号方式を指定できる
# -f [output_keyfile] : sshkeyの保存先とファイル名の指定できる
# -C [comment] : コメント

生成された鍵の暗号方式の確認

$ ssh-keygen -l -f .ssh/kkr_server/id_rsa.pub

利用登録の申請(管理者:公開鍵をサーバーに登録を参照)#

生成した id_rsa.pub 内の公開鍵をcatで表示し,コピーする
ssh- … …@… の一行すべてコピーする

$ cat ~/.ssh/kkr_server/id_rsa.pub

Slackでコピーした 公開鍵#サーバー公開鍵登録申請チャンネルで送信し,登録申請
このとき,秘密鍵と間違えないように注意!!!

sshの設定追加#

$ vi ~/.ssh/config

※ [ # comment ] は消す

Host kkr_server                          # alias(好きな名前でOK)
  HostName kobe-kosen-robotics.org       # サーバーのホスト名やIPアドレス
  User admin                             # サーバーのユーザー名
  IdentityFile ~/.ssh/kkr_server/id_rsa  # 秘密鍵の絶対パス
  IdentitiesOnly yes                     # IdentityFileで指定した秘密鍵に限定するかどうか(yes/no)
  ServerAliveInterval 60                 # 任意:通信がないとき,60秒ごとにサーバーへの応答確認をする(接続切れ防止)
  ServerAliveCountMax 3                  # 任意:連続で何回応答確認するか(Interval:60, CountMax:3 のときは少なくとも3分間は切れない)

Login#

Terminalからsshコマンド $ ssh [alias] を用いてログイン(VS codeからRemote SSHを使ってログインすることもできる)
秘密鍵を使用する際のパスフレーズが求められる 鍵の生成で設定したパスフレーズを入力

$ ssh kkr_server
Enter passphrase for key '~/.ssh/kkr_server/id_rsa': 
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-136-generic x86_64)
.
.
(Server)$

管理者:公開鍵をサーバーに登録#

sshでサーバーにログインする
ログイン後,以下のコマンドで authorized_keys ファイルを開く

(Server)$ vi ~/.ssh/authorized_keys

新しい行に公開鍵を追加する
補足:Vimは,‘a’ で編集モード,‘escape キー’ で編集モード終了,‘:’ でコマンドモード,‘wq’ で書き込んで終了(保存)

Reference#

  1. GitHubにSSH接続するまでの手順

  2. vscodeから公開鍵認証でSSH接続を行う

  3. SSH公開鍵認証で接続するまで

  4. 【Linux】SSH公開鍵認証方式の設定手順