# Login Server ## kobe-kosen-robotics.orgのサーバーへログインするとできること ホームページの編集や再起動などができる
主に,Linuxを対象にしている.(Windowsも同様の手順でTerminalから可能.でも,sshの有効化方法が違ったり,コマンドのPATH等を少し工夫する必要があるのでネットなどを参考に) ## システムの構成 `$ ssh admin@kobe-kosen-robotics.org` とパスワードを使ったログインはユーザー名とパスワードの総当たり攻撃で不正ログインの可能性がある
本システムはSSHの鍵認証を用いて,登録された人(PC)のみが外部サーバーにアクセスできる ## SSHのインストールの確認 ```bash $ ssh -V # version check ``` 基本的に実行の必要ないが,入っていない場合は実行する. ```bash $ sudo apt update && sudo apt install -y ssh ``` ## SSH鍵の生成 公開鍵と秘密鍵はホームディレクトリーの.sshフォルダに保存される
_**要確認::絶対に気をつけなければいけない!!**_
 秘密鍵 [ id_rsa ] : 誰にも漏らしてはいけない  公開鍵 [ id_rsa.pub ] : 他の人に渡してもいい ::::{tab-set} :::{tab-item} Linux ```bash $ 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] : コメント ``` 生成された鍵の暗号方式の確認
```bash $ ssh-keygen -l -f ~/.ssh/kkr_server/id_rsa.pub ``` ::: :::{tab-item} TODO Windows ```bash $ 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] : コメント ``` 生成された鍵の暗号方式の確認
```bash $ ssh-keygen -l -f .ssh/kkr_server/id_rsa.pub ``` ::: :::: ## 利用登録の申請(管理者:公開鍵をサーバーに登録を参照) 生成した id_rsa.pub 内の公開鍵をcatで表示し,コピーする
ssh- ........ ....@..... の一行すべてコピーする ```bash $ cat ~/.ssh/kkr_server/id_rsa.pub ``` Slackでコピーした **公開鍵** を[#サーバー公開鍵登録申請](https://kcctrobotics.slack.com/archives/C056BQYURS9)チャンネルで送信し,登録申請
このとき,秘密鍵と間違えないように注意!!! ## sshの設定追加 ```bash $ vi ~/.ssh/config ```   ※ [ # comment ] は消す ```text 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を使ってログインすることもできる)
秘密鍵を使用する際のパスフレーズが求められる 鍵の生成で設定したパスフレーズを入力 ```bash $ 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 ファイルを開く ```bash (Server)$ vi ~/.ssh/authorized_keys ``` 新しい行に公開鍵を追加する
補足:Vimは,'a' で編集モード,'escape キー' で編集モード終了,':' でコマンドモード,'wq' で書き込んで終了(保存) ## Reference 1. [GitHubにSSH接続するまでの手順](https://qiita.com/kkrtech/items/a164f455c73867958181) 2. [vscodeから公開鍵認証でSSH接続を行う](https://qiita.com/shwatanap/items/f05616cdc1846b39fa68) 3. [SSH公開鍵認証で接続するまで](https://qiita.com/kazokmr/items/754169cfa996b24fcbf5#%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88pc%E3%81%8B%E3%82%89%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%B8%E5%85%AC%E9%96%8B%E9%8D%B5%E3%82%92%E8%BB%A2%E9%80%81%E3%81%97%E3%81%A6%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B) 4. [【Linux】SSH公開鍵認証方式の設定手順](https://qiita.com/djkazunoko/items/e7de9a00b5e8a202c298#%E5%85%AC%E9%96%8B%E9%8D%B5%E3%81%AE%E7%99%BB%E9%8C%B2)