Ubuntu18.04がリリースされ、利用させてもらっている主要パッケージが対応していることがわかったので、色々と整理しながら徐々に新システムに移行しようと考えた。
利用しているサービスが増えてきたからLDAPを導入しようとか、よくよく考えるとAndroidからVPN接続できていないからなんとかしようとか、夢広がリング。
それと、今までお世話になってきたデスクトップは入れない方向で考えている。運用を始めた頃にはGUIは簡単と思っていたのだけれど、自分的に割とコマンドでできることが増えてきた。余計なものを動かさないシンプルさを求め、デスクトップなしで頑張ってみよう。
まずは、Ubuntu18.04 Server をダウンロード(サポート終了に伴ってリンク切れ)。
インストールはとっても簡単、インストール時に日本語は選べないようなので英語にした。
それと、インストールの段階でIPアドレスを手動で固定した。
インストール直後にログインしたら、このメッセージが表示された。
Ubuntu 18.04 LTS hogeserver tty1 hogeserver login: hoge Password: Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information disabled due to load higher than 1.0 0 packages can be updated. 0 updates are security updates. The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), user "sudo <command>". See "man sudo_root" for details. hoge@hogeserver:~$ _
このまっさらな感じがステキ。
■公開鍵暗号を用いた接続
SSHDは最初から入ってるので、公開鍵暗号を用いた接続に切り替えていく。
本来はクライアント側で秘密鍵と公開鍵を作り、サーバーに公開鍵を渡す…という事のようなんだけれど、クライアント側がWindowsなので、サーバー側で鍵を作り秘密鍵をクライアントに持ってくることにした(いつもサーバー側で作業するから、サーバーとクライアントの意味を取り違えて、仕組みを上手く理解できずにいた…)。
※参考サイト
SSHでリモートホストに接続する前にやっておくと便利なことは? ssh-keygenコマンド
$ cd $ mkdir .ssh $ ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/hogeuser/.ssh/id_rsa):何も入力せず[Enter] Enter passphrase (empty for no passphrase):パスフレーズを入力[Enter] Enter same passphrase again:同じパスフレーズを入力[Enter] Your identification has been saved in /home/hogeuser/.ssh/id_rsa. Your public key has been saved in /home/hogeuser/.ssh/id_rsa.pub. The key fingerprint is: SHA256:qD3z4gGcRjNr2q2la85hbn++nm7MmDfI6pjwRgqlgp0 hogeuser@hogeserver The key's randomart image is: +---[RSA 4096]----+ |O*B+ | |BoO+. | |OO = . | |*+* = + o | |++ B.o+ S | |+.*.*. o | | +.E | | | | | ← これは作成の都度変わる +----[SHA256]-----+ $ ll ~/.ssh total 16 drwxrwxr-x 2 hogeuser hogeuser 4096 May 19 04:46 ./ drwxr-xr-x 5 hogeuser hogeuser 4096 May 19 04:42 ../ -rw------- 1 hogeuser hogeuser 3326 May 19 04:46 id_rsa -rw-r--r-- 1 hogeuser hogeuser 745 May 19 04:46 id_rsa.pub
これで秘密鍵と公開鍵ができた。
サーバー側でauthorized_keysに公開鍵(id_rsa.pub)を追記し、パーミッションを変更。
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ ll ~/.ssh
total 20
drwxrwxr-x 2 hogeuser hogeuser 4096 May 19 09:37 ./
drwxr-xr-x 5 hogeuser hogeuser 4096 May 19 09:36 ../
-rw------- 1 hogeuser hogeuser 745 May 19 09:37 authorized_keys
-rw------- 1 hogeuser hogeuser 3326 May 19 04:46 id_rsa
-rw-r--r-- 1 hogeuser hogeuser 745 May 19 04:46 id_rsa.pub
クライアント側のWindowsのどこに秘密鍵を置くのが正しいのか…見られなそうなところって…
%LOCALAPPDATA%\VirtualStore\Program Files (x86)\teraterm
あたり?に ~/.ssh/id_rsa の中身をテキストに貼り付けて配置。
Teratermでこのファイルを利用して接続を試し、問題なければパスワード認証をやめる。
/etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key ← (1)コメントになっていたのを外に出す(鍵接続許可) #HostKey /etc/ssh/ssh_host_ecdsa_key #HostKey /etc/ssh/ssh_host_ed25519_key … # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes PasswordAuthentication no ← (2)追加してパスワード接続をできなくする #PermitEmptyPasswords no
$ sudo systemctl restart ssh
最後、サーバー上にある id_rsa を削除すればOKっぽい。
■静的IPアドレスの設定
当面IPv4のみとして、インストール時に静的IPアドレスを設定したが、変更するときにはどこで何をするのか…。答えはここに。
※参考サイト
サイトに従って実際に中身を見てみると…
/etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: ens33: addresses: - 192.168.33.55/24 gateway4: 192.168.33.2 nameservers: addresses: - 192.168.33.231 search: - hogeserver.hogeddns.jp optional: true version: 2
となっていた。
変更したらこのコマンドで反映させるそうな。
$ sudo netplan apply
■IPv6無効化
IPv6を無効化する場合は以下で行う。昔書いた /etc/sysctl.confに書き込む手は一時的には使えるんだが、再起動すると戻ってしまう。
※DNS管理の知識が足らないので、トラブルが起きないように…
恒久的に反映させるならGrubの設定が必要、赤文字部分を追記し…
/etc/default/grub
・・・
GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
・・・
以下のコマンドでGrubに反映。
$ sudo update-grub
これでIPv6は無効化する。
■タイムゾーンの設定
ログを見たらタイムゾーンがUTCだ。解決策はここに。
Qiita / [Ubuntu16.04] timezoneの確認と設定
$ timedatectl ← 現状確認 Local time: Sun 2018-05-20 06:00:12 UTC Universal time: Sun 2018-05-20 06:00:12 UTC RTC time: Sun 2018-05-20 06:00:12 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no $ sudo timedatectl set-timezone Asia/Tokyo ← タイムゾーン設定 $ timedatectl ← 反映結果の確認 Local time: Sun 2018-05-20 15:05:11 JST Universal time: Sun 2018-05-20 06:05:11 UTC RTC time: Sun 2018-05-20 06:05:11 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
設定ファイルを一生懸命修正する方法もあるようだけれども、コマンドに任せたほうが安心感が高そうな気がする…
これからの道のりを想像すると、ワクワクとドキドキがないまぜになってやってくる。
どうかうまくいきますように…。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他