ラベル linux の投稿を表示しています。 すべての投稿を表示
ラベル linux の投稿を表示しています。 すべての投稿を表示

2020年4月30日木曜日

Ubuntu 18.04 LTSにPostgreSQL 10とZabbix 4.0 LTSのインストール

自宅のNW機器などを監視したくてESXiの空いているリソースを利用してZabbixを建てることに

OSはUbuntu 18.04 LTS
20.04 LTSが出たばかりだけどひとまずドキュメントが揃っているこちらで

データベースは個人的に使ってみたかっただけなのでPostgreSQLを採用

とりあえずOSは公式からイメージファイルをダウンロードして1CPU 2GBくらいでESXi上にサーバ作成

事前に以下サイトを参照して必要なものをインストールしておく


※参考サイト
server-world Ubuntu_18.04

■Apache
$ sudo apt -y install apache2

■PHP
$ sudo apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

■タイムゾーン変更
$ sudo vim /etc/php/7.2/apache2/php.ini

#以下修正
date.timezone = "Asia/Tokyo"

■DB PostgreSQL
$ sudo apt -y install postgresql


■OSのタイムゾーン変更
$ sudo timedatectl set-timezone Asia/Tokyo



Zabbixのインストール自体は公式が便利なサイトを作っているので参照
OSや利用するソフトウェアとバージョンを選択すると必要なコマンドが下に表示される

Download and install Zabbix

■Zabbixのリポジトリ追加
$ sudo wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
$ sudo dpkg -i zabbix-release_4.0-3+bionic_all.deb
$ sudo apt -y update

■Zabbix Serverとagentのインストール
$ sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php7.2-pgsql zabbix-agent

■Zabbix用DB作成
$ sudo -u postgres createuser --pwprompt zabbix
$ sudo -u postgres createdb -O zabbix zabbix

■初期スキーマとデータのインポート
$ sudo  zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

■作成したDBへのログインPW設定
$ sudo vim /etc/zabbix/zabbix_server.conf

#以下修正
DBPassword=(任意の値 後で使う)

■Zabbixのタイムゾーン変更 該当箇所コメント解除して追記
$ sudo vim /etc/zabbix/apache.conf

php_value date.timezone Asia/Tokyo

■再読み込みと有効化
$ sudo systemctl restart zabbix-server zabbix-agent apache2

$ sudo systemctl enable zabbix-server zabbix-agent apache2


ここからはWebブラウザで操作
以下作成したサーバIP+ /zabbixでアクセスする
今回は192.168.1.14で作成したので以下
192.168.1.14/zabbix

画面が表示されたら【Next Step】から次へ
zabbix1


インストールされたパッケージのステータス確認なので問題なければ次へ
zabbix2


利用するDB情報
ユーザ名はZabbix、PWは上で作成したものを入力
zabbix3


Host名やポーと設定など
特に不要なら初期値のままで名前は任意に設定
zabbix4


 これで初期設定は終わったので【Finish】で再読み込み
zabbix5


ログイン画面が表示される
初期のユーザ名はadmin
PWはzabbixに設定されている
zabbix6


ログインすると英語表記のままだが、基本的な項目はこれで表示された
zabbix7



日本語化するためにubuntuにsshで繋ぎ直して以下を設定する

$ sudo localedef -f UTF-8 -i ja_JP ja_JP
$ sudo service zabbix-server restart
$ sudo service apache2 reload

再度zabbixにログインして右上の【profile】を開いて【Language】から【Japanese (ja_JP)】を選択して保存する

これで画面表記も日本語化された
後は監視する各エージェントの設定をやっていこう
zabbix8

2020年4月20日月曜日

Ubuntu18.04でのpostgreSQLデータディレクトリ変更

Ubuntu18.04にPostgreSQLを入れてデータディレクトリを変更する際のメモ

■PostgreSQLのインストール
Ubuntu18.04ではPostgreSQLのVer.10がインストールされる
$ sudo apt -y install postgresql



■現状のデータディレクトリ確認
DBにログイン
$ sudo –u postgres psql

・データディレクトリ確認
postgres=# SHOW data_directory;
【/var/lib/postgresql/10/main】と表示されているはず


・ログアウト
\q


■変更先フォルダ作成
今回は【/mnt/usb/pgdata】を新しいデータディレクトリにする
・フォルダ作成とパーミッション変更
 所有者をpostgresにして所有者のみ読み書きできるように
$ sudo mkdir /mnt/usb/pgdata
$ sudo chmod go-rwx /mnt/usb/pgdata
$ sudo chown postgres:postgres /mnt/usb/pgdata


DB初期化
・ユーザpostgresにログイン

$sudo -s -u postgres

・DB初期化
 Ubuntuだとinitdbにパスが通って無いのでとりあえずフルパスで指定
$ /usr/lib/postgresql/10/bin/initdb -D /mnt/usb/pgdata


■設定ファイル書き換え
postgresユーザだと掛けない場合はログアウトして
$ sudo vim /etc/postgresql/10/main/postgresql.conf

・該当箇所を以下の通り書き換え
data_directory = '/var/lib/postgresql/10/main' # use data in another directory
data_directory = '/mnt/usb/pgdata' # use data in another directory


■postgesqlの再起動
$ sudo /etc/init.d/postgresql stop
$ sudo /etc/init.d/postgresql start


■変更後ののデータディレクトリ確認
DBにログイン
$ sudo –u postgres psql

・データディレクトリ確認
postgres=# SHOW data_directory;
【/mnt/usb/pgdata】と表示されているはず

・問題なければログアウト
\q


これでデータディレクトリを任意の位置に変更できる

2020年4月3日金曜日

Raspberry Pi 3 model B+にRaspbian Buster LiteインストールとSamba構築

Raspberry Pi 3 model B+のOSを入れ替えたのでメモ
ついでに以前のブログ内容が手抜きだったので、自分のメモとしてやり直し

公式サイトからGUI無しのRaspbian Buster Liteをインストール
Raspbian ダウンロードサイト

解凍したイメージファイルをSDカードに書き込み
SDカード内直下に【SSH】ファイルを作成してリモートアクセスの準備
Windows10からだと、右クリック>新規作成(X)>テキストドキュメントを作成して
拡張子無しの【SSH】にリネームすればいい

SDカード刺して起動するが、初期だとDHCPなのでXG Firewall側で一時的にDHCPを有効化してIP払い出せるようにしておく


起動したらいつものアップデートとVimのインストール
$ sudo apt update
$ sudo apt upgrade
$ sudo apt -y install vim


■インターフェース名変更
liteだからなのかデバイス名が【enx+macアドレス】の表記になっていたので、eth0に変更する
$ sudo vim /lib/udev/rules.d/73-usb-net-by-mac.rules
下の方のNAMEの""内を変更
    IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"
  ↓
    IMPORT{builtin}="net_id", NAME="eth0"

■IPアドレス固定
$ sudo vim /etc/dhcpcd.conf
以下追記
interface eth0
static ip_address=192.168.*.*/28(指定したいIP)
static routers=192.168.*.*(デフォルトゲートウェイIP)
static domain_name_servers=192.168.*.*(DNS IP)

■Wi-Fiの無効化
$ sudo iwconfig wlan0 txpower off

■ネットワークの再起動
$ sudo systemctl restart networking

■IP確認
$ ip a
でeth0に指定したアドレスが表示されていれば問題なし


既存のNTFSフォーマットのUSB-HDDを利用するのでntfs-3gをインストール
$ sudo apt -y install ntfs-3g

念のためデバイス確認
$ sudo fdisk -l

/dev/sda1で認識されてることが確認出来たらマウント場所作成してマウント
GUI環境無いと自動マウントはされない
$ sudo mkdir /mnt/hdd 
$ sudo mount -t ntfs /dev/sda1 /mnt/hdd

起動時に自動マウントさせるためUUIDの確認
$ sudo blkid

【/dev/sda1:】のところのUUIDをメモ

fstabに追記
$ sudo vim /etc/fstab
#最終行に以下記述
UUID= ※メモしたUUID※  /mnt/hdd ntfs
Defaults.nofail 0 0

共有フォルダとして利用するフォルダは【public】、アクセス権付きフォルダは【pi】ですでに作成済みだったのでパーミッション変更
必要であればmkdirでフォルダも作成
$ sudo chmod 777 /mnt/hdd/public
$ sudo groupadd pi
$ sudo chgrp pi /mnt/hdd/pi
$ sudo chmod 770 /mnt/hdd/pi


Sambaのインストール
$ sudo apt -y install samba

Sambaの設定
$ sudo vim /etc/samba/smb.conf

36行目のinterfaces = 127.0.0.0/8 eth0の後ろに接続するIPを記述
今回は端末固定するので/32で
 interfaces = interfaces = 127.0.0.0/8 eth0 192.168.*.*/32 IP指定)

[global]内に追記
unix charset = UTF-8
dos charset = CP932
max protocol = SMB2
#共有フォルダ
[public]
    path = /mnt/hdd/public
 read only = No
    writable = yes
    guest ok = yes
    guest only = yes
    create mode = 0777
    directory mode = 0777
#アクセス権フォルダ
[pi]
    path = /mnt/hdd/pi
    writable = yes
    create mode = 0770
    directory mode = 0770
    guest ok = no

    valid users = pi


■Sambaユーザ登録してパスワードをRaspberrypi上のユーザと同期させる
$ sudo pdbedit -a pi

sambaの再起動
$ sudo systemctl restart smbd


【\raspberrypiのip\フォルダ名】でアクセスできれば問題なし
GUI無し環境だから少しは快適に動くかな?

2020年2月16日日曜日

Cloud ReadyからUbuntu Mate 19.10へ変更

以前Cloud ReadyをインストールしたPCでの作業ではLinux環境を起動するのに時間がかかるため、自分の使い方ではいまいちだと判明したのでOSの入れ替えを行う
古いPCへのCloud Readyインストール

今回はPCスペックを加味してUbuntu Mateを選択
昨年末頃に19.10の最新バージョンが出てたらしい
 Ubuntu MATE 19.10 Release Notes


公式サイトからISOファイルを拾ってきRufusでインストール用のUSBメモリを作成

PCのブートをUSBからに変更して起動したらあとは画面の指示通りにインストールする


言語とキーボード設定を日本語にすればそれだけで日本語環境で構築されるから非常に便利

ひとまずいつものupdateとUpgradeを実行した上でいくつかソフトウェアをインストール
desktop



Kindleアプリ入れたいけどWineとの相性なのかイマイチうまく行かない
この辺はやはりChromebook買ってからAndroidアプリ使う方が無難かな

とりあえずWeb閲覧とちょっとしたターミナル利用には十分なレスポンス

CPUスペックが低いノートPCの再利用ならこちらの方が使いやすいかもしれない

2020年1月27日月曜日

古いPCへのCloud Readyインストール

Microsoft社がWindows7のサポートを終了するとのことで実家から相談があり、PCの買い替えを勧めたところ、今使っているWindows7のノートPCを譲り受けることになった

せっかくなので以前から気になっていたChromiumOSを試したいので、
Cloud Readyでもインストールして使ってみることに


スペックはやはり低い
東芝製(現dynabook(社)のdynabookシリーズ「PB452/22FS」
15.4型の低スペックモデル
CPU:Celeron B820 1.7GHz
メモリ :DDR3-10600 2GB x1
HDD:320GB 5400rpm SATA
LAN:100BASE-Tまで
Wi-Fi:IEEE802.11b/g/n
B452/22F

B452/22F裏面




流石にスペックが低いので、メモリとSSDを購入して換装することに
換装前



メモリはAmazonで安く売ってたよくわからんメーカー製4GB x2
ChromiumOS系だと4GBでも十分だろうけど安かった
メモリ



SSDはCrucial社製の120GB
普段はSanDiskばかり選ぶけどこの価格帯だとこっちの方がレビューが良かったのでテスト用で
SSD



後はマザーボード用のボタン電池とACアダプタ(猫にかじられて断線)とバッテリーを互換品で買い揃えて全体的なクリーニング
やはりバラしたら内部のファン付近に埃が溜まっていた
クリーニング



インストール用のUSBメディアは「 neverware 」のサイトから個人用の無料版をダウンロードしてURL先の指示通り作成


PC本体に作成したUSBメディアを指してBIOSでブート順序をUSBに切り替えて(空のSSDなら不要だった)起動すればロゴ画面が出てくる
Cloudready起動



Googleアカウントのログインを促す画面が出てくるので自分のアカウントでログイン
右下のメニュー画面からWi-Fiの設定もやっておく
GOOGLEログイン



ログインできたらすぐ初期画面が立ち上がって来る
Windwosのセットアップよりシンプルでいい
初期画面



このままだとUSBから起動してるだけで動作が遅いのでSSDにOSをインストールする
右下のメニューを開いてInstall OSを実行
インストールするかの確認やディスクの中身消えるが良いかのダイアログが出てくるので同意して実行
installOS1


installOS2

installOS3




インストールが完了して再起動すると言語選択の画面が出てくるので表示もキーボードも日本語に変更して次へ進む(USBブートでも出てきた気がする)
デバッグモードは今回利用しないので無視する
Wi-Finの設定忘れずやり直しておく





個人情報やらなんやらの注意書きが出てくるのでさっと目を通してcontinueして初期セットアップを終了させる



 一応OSのアップデートもチェックするが、ダウンロードしてすぐだったのでなかった
これもWindowsよりも早くてい良いな




また、最近のバージョンからChromiumOS上でLinuxが動かせるようになったらしいので有効化しておく
設定のLinux(β版)をオンにするだけでインストールされるから楽でいい




このままだと日本語入力などもLinux上でできないので、その内にまた設定しよう

ざっくり使った感じだと、Playストアが利用できない一昔前のChromebookの様な感じ
やはり新型でChromebookを買った方がAndroidアプリも使えるので、色々と捗るのは間違いない
8年前のPCでCPUスペックが低いのでたまに動作が遅くなるものの、メモリを増やしてSSDに換装したので起動と終了はすごく早い

まぁお金かけずに遊べるPCが手に入ったので良しとしよう

2019年8月15日木曜日

Raspberry Pi 3 B+ に新しいOS[Raspbian Buster]インストール

Raspberry Pi用のOSが新しくRaspbian Busterなっていたので

自宅のRaspberry Pi 3 B+にクリーンインストール


OSは公式のダウンロードサイトサイトから
Raspbian

ひとまず最低限のデスクトップ環境だけでいいので
Raspbian Buster with desktop」を選択

ダウンロードからインストールまでは以前のOSと同じ手順で

一番大きいのはDebian 10系になったようなので、
apt-get等がaptコマンドに変わったので入力する文字数が減ったことか


vimと日本語IMEの設定も同様に設定


 今回のはLibreOffice初期インストールされていないの選んだから
 日本語IMEだけ


公式ブログ見る限り以前のバージョンよりも軽くなってるかな?
前のは全部入りのバージョンインストールしたからそれも影響していたかもしれないけど

2019年6月9日日曜日

Cent OS 7でdigコマンドを使えるようにする

仕事中にMXレコードの正常性調べて欲しいと依頼されたものの、
会社のPCではnslookup含めコマンド打てない様にロックされていた

仕方なくGCE上のCent OS 7にてdigを使う
スマートフォンからSSHでアクセスできるし、
Bluetoothキーボード持ち歩いてるからどこでもコマンド打てるのは便利だ

標準ではインストールされていないので下記コマンドで
$ sudo yum -y install bind-utils


インストール完了したので下記コマンドで調査
$ dig (調べるドメイン名)mx

結局NOERRORが返ってきたのでサーバ側の問題っぽいということで
ホスティング先の会社に問い合わせてもらうことに

セキュリティは重要だけどある程度の機能は使えるようにしてほしいなとも思う。

2019年5月1日水曜日

GCPの無料枠で作成したCentOSのシステム言語とタイムゾーンの日本語化

GCP上で作成したVMは無料枠のためアメリカリージョンで言語やタイムゾーンを初期のまま放置していたので、そろそろ日本語化しておく。

VMはCent OS 7


■システム言語を日本語へ変更
$ sudo localectl set-locale LANG=ja_JP.UTF8


■タイムゾーンを日本へ変更
$ sudo timedatectl set-timezone Asia/Tokyo


■再起動して設定反映
$ sudo systemctl reboot

2019年3月21日木曜日

Raspberry Pi 3 model b+でのvim設定変更

Raspberry Pi 3にvimをインストールはしていたものの、デフォルトの状態で設定を変えていなかったので少し設定変更を行っておく。


$ sudo apt-get install vim
にてすでにvimはインストール済み

設定ファイルが/etc/vim/vimrcに存在するので、piユーザのhome直下へコピーを作成して少し修正する。


$ sudo cp /etc/vim/vimrc ~/.vimrc


保存出来たら設定ファイルの中身を修正する(viで編集)
$ vi ~/.vimrc



26行目コメント解除(構文毎に色分けする)
syntax on

30行目コメント解除(背景色が暗い時に自動で色調整)
set background=dark

40~42行目コメントアウト
(ファイルタイプの検索とファイルタイプ毎のインデントを有効化)
if has("autocmd")
  filetype plugin indent on
endif


最終行に追記

左端に行番号を表示させる
set number

色指定(文字色などを変更)
colorscheme industry



とりあえずコレで多少は見やすくなったはず。

文字色などの色種類は下記で検索可能。
$ ls /usr/share/vim/vim80/colors/
colorscheme


delek.vim
industry.vim ←コレか
pablo.vim
slate.vim
blue.vim
desert.vim ←コレか
koehler.vim
peachpuff.vim
torte.vim
darkblue.vim
elflord.vim
morning.vim
ron.vim
zellner.vim
default.vim
evening.vim
murphy.vim ←コレか

shine.vim


デフォルトで入ってるのはコレくらいで3つくらいは配色が好みかな。
とりあえず見やすければコレでいいか

2019年2月22日金曜日

GCEのCent OSへログインするSSHポートを22番から変更する

Google Cloud Platform(以下GCP)のGoogle Compute Engine(以下GCE)で作成したVMインスタンスへアクセスする際のSSHポートを変更する。
今回は「22」から「20055」へ変更する。


GCEはVMインスタンスの上位にFWがあるため、設定変更箇所は下記の4箇所となる。

・GCPのファイアウォールルールに追加してVMに適用
・Cent OSのSELinuxにポリシー追加
・Cent OSのfirewalldに設定追加
・sshdにポート番号追加

その後疎通確認してから22番ポートを閉じていく。



■GCPのファイアウォールルールに追加する。

メニューの「VPCネットワーク」 - 「ファイアウォールルール」から「ファイアウォールルールを作成」から新規ルール作成画面に移る。

設定するのは下記の項目。

FW


名前」はわかりやすいように「allow-ssh20055」に設定

ターゲットタグ」を名称と同じにして、VMインスタンスへ適用する際にわかりやすくしてみた。任意なので自分がわかりやすければOK。

ソースIPの範囲」は「0.0.0.0/0

プロトコルとポート」は「指定したプロトコルとポート」から「tcp」にチェックを付けて「20055」を入力して保存。


VMインスタンスの編集から設定画面を開いて「ネットワークタグ」に先程作成したルールの「ターゲットタグ」を入力する。
VM


これでGCP上のファイアウォールルールでTCPの20055番ポートが空いた。




■SELinuxにポリシー追加

SELinuxの設定を変更するためVMにSSHでログインしてroot権限に移行する
$ sudo su -

SELinuxの状態を確認する。
# getenforce

Enforcing」と出れば有効化されているので作業を続ける。
設定がややこしいからと言って無効化するような無粋なことはしない。

SELinuxの設定変更には「semanage」コマンドを利用するが、今回立てたVMインスタンスのCent OSではすでにインストール済みだった為このまま続ける。

まずはSELinuxが許可しているSSHのポートを確認する。
# semanage port --list | grep ssh
semanage


tcpの22番ポートが許可されているので、これに今回追加する20055を追加する。
--add」オプションでポリシーを追加する。
# semanage port --add --type ssh_port_t --proto tcp 20055

設定が追加されているかを確認する。
# semanage port --list | grep ssh
SELinux20055


これでSELinuxのポリシーに20055番ポートの設定が追加された。
22番ポートが残っているが他の設定があるから一旦このままで。




■firewalldに設定追加

次にfirewalldの設定を変更する。
firewalldの稼働状況の確認から。
# systemctl status firewalld
firewalld


Active:の値がactive(running)となっているのでファイアウォールは有効になっている。
eth0のところにWARNINGが出ているが今回は無視しよう。

現状の確認としてファイアウォールが外に向けて公開しているサービスを確認する。
# firewall-cmd --list-services --zone=public --permanent
firewalld ssh


開放するポートを設定するが、この設定が入っているファイル「/usr/lib/firewalld/services/ssh.xml 」ではなく、
/etc/firewalld/services/」に「ssh.xml」を配置して設定を記述する必要がある。

既存のファイルを/etc/firewalld/services/にコピーする
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/


コピーした先のファイルに2005番ポートの設定を追加する。
# vi /etc/firewalld/services/ssh.xml
/etc/firewalld/services/ssh.xml


設定が完了したらfirewalldの設定を再読込させる。
# firewall-cmd --reload
reload


■sshdにポート番号を追加

最後にsshdにポート番号を追加する。
設定ファイルは「/etc/ssh/sshd_config」に記述されているのでこちらを編集する。

# vi /etc/ssh/sshd_config
上の方に#でコメントアウトしてある「#Port22」を下記に修正
Port 22
Port 20055
sshd_config


vimだとコメントアウトした文字色が背景色に近く見辛かったので今回はviで編集。
またその内vimの設定イジるか。

これで22番と20055番でsshへアクセスできるようになったはずなので、設定を再読込する。
# systemctl restart sshd


クライアントPC側の「.ssh」フォルダにある「config」ファイルのポート番号も忘れずに新しいポート番号に書き換えて、新しいポート番号でアクセスしてみる。
ssh20055


ここまでで新しく設定した20055番ポートでSSH接続できるようになった。
あとは残っている22番ポートの設定を無効化していけばいい。




■GCPのファイアウォールルールに追加

冒頭で行った新しいポート番号を登録する要領で22番ポートを拒否するルールを作成して、VMインスタンスへ適用する。
deny-ssh22


名前」はわかりやすいように「deny-ssh22」に設定

一致したときのアクション」を「拒否」に設定

ターゲットタグ」はこれも名前と同じモノに

ソースIPの範囲」は「0.0.0.0/0

プロトコルとポート」は「指定したプロトコルとポート」から「tcp」にチェックを付けて「20055」を入力して保存。

同様にVMインスタンスの編集から設定画面を開いて「ネットワークタグ」に先程作成したルールの「ターゲットタグ」を入力する。


また、ブラウザからのSSH接続はこのままでは出来ないが、
VMインスタンスのSSHの右にあるプルダウンメニューから「ブラウザウィンドウでカスタムポートを開く」を実行して、新しく設定した20055を入力すれば問題なく接続できた。
cloudshell 20055


実際の挙動としてはこれをやるだけで外部からの22番ポートでのSSH接続はできなくなる。

だからといって他の設定を置いておくのも気持ち悪いので22番ポートの設定を無効化していく。




■sshdから22番ポートを無効化

上で編集した「/etc/ssh/sshd_config」を編集する。

# vi /etc/ssh/sshd_config
22番ポートの情報をコメントアウト
#Port 22
#Port 22


設定を再読込する。
# systemctl restart sshd




firewalldから22番ポートを無効化

上で編集したファイルから22番ポートの記述を削除する。
# vi /etc/firewalld/services/ssh.xml
ssj.xml 22deny


firewalldの設定を再読込させる。
# firewall-cmd --reload




■SELinuxのポリシーから削除(出来なかった)

削除する場合は「semanage」コマンドで「--delete」オプションを利用する。
# semanage port --delete --type ssh_port_t --proto tcp 22
SELinux delete

とやってみたものの、
「ポート tcp/22 はポリシーに定義されているため、削除できません」
との事で削除出来なかった。


まぁこれで22番ポートのアクセスが出来ないことは確認できたので良しとしようか。

2019年2月19日火曜日

Windows10のPowerShellからGCPへのSSH接続

TwitterでWindows10 バージョン1803からOpenSSHが実装されてるらしいとの情報を見たので少し確認。

アプリと機能」から「オプション機能の管理」を確認すると確かに「OpenSSHクライアント」がインストールされている。

OpenSSH



せっかくなのでGoogle Cloud Platform(以下GCP)に無料枠でVMを作成してSSHで繋げて見ようかと。


GCP」に移動して自分のプロダクトへ移動して
Compute Engine」 - 「VMインスタンス」 から新規作成。

スペックはGCPの無料枠である「Always Free」の範囲内に収めるために以下の構成で。

リージョン:us-west1
ゾーン:us-west1-b
マシンタイプ:f1-micro(CPU:0.6GHz、メモリ:0.6GB)
OS:Cent OS 7 30GBの標準の永続ディスク

VM


ついでに外部公開用の固定IPもVMに紐付ける1個だけなら無料らしいので一緒に作成する。
global


作成したVMの右側にあるSSHを選べばブラウザからSSHでのアクセスは可能。
VMSSH



でもまぁコレじゃ面白くないのでWindowsから接続できるように準備する。
一応「OpenSSH」のマニュアルページを参照。


PowerShellを起動して以下コマンド実行
> ssh-keygen -t rsa -b 4096

-t で暗号方式を RSA に指定
-b で鍵の長さを 4096 に指定(デフォルト値は2048)
ssh-keygen


これでユーザフォルダ直下に「.ssh」フォルダが作成され、公開鍵と秘密鍵が生成された。
.ssh


以下コマンドを実行して公開鍵の内容を表示する。
> cat ~/.ssh/id_rsa.pub
rsa

ssh-rsa ** ~ ** == (ユーザ名)の様な表記で表示されるので全てコピペする。
もちろん該当ファイルをテキストエディタなどで開いても同様の物が見れる。


SSHで繋げたいVMを選んで編集画面に入ると「SSH認証鍵」の項目があるので、こちらの空欄に先程の文字列をそのままペーストする。


公開鍵


自動的に空欄の左側にSSHでのログイン用ユーザ名が表示されるが、
このVM内にも同じユーザ名で自動的にユーザを作成してくれる。

便利だ。

内容を確認したら保存ボタンで設定内容を更新。


PowerShellから下記コマンドでアクセスできるかを確認する。
> ssh (ユーザ名)@(IPアドレス) -i ~/.ssh/id_rsa




これでPowerShellからGCPのVMへSSHでログインできるようになったものの、毎回コレを入力するのは面倒なので「config」ファイルを作成する。

先程のログインで「known_hosts」ファイルが作成されていることも念の為確認。
こちらは接続したサーバ側のSSHサーバ証明書が格納されている。



.ssh」フォルダの直下に「config」ファイルを作成してテキストエディタで下記内容を入力

Host (任意の名称)
HostName (IPアドレス or ドメイン名) 
User (ユーザ名)
Port 22(接続ポート)
IdentityFile ~/.ssh/id_rsa(秘密鍵のパス)


今回はHost名をmail-srvに設定した。その内メールサーバにしたい。
これでPowerShellから
> ssh mail-srv(設定したHostの名称)でアクセスして問題なければ大丈夫かな。


GCPの無料枠は中国やオーストラリアからのVM宛の通信は無料枠対象外だから、気が向いたらSSHのポートを初期の22から別に変更しよう。


~ブログ更新~

設定してみた。