公開鍵暗号方式(RSA)による接続_設定方法【OpenSSH】【フリーソフト】
- 環境
OS:Ubuntu
バージョン:5.8.0-1013-raspi
- 構築
流れは以下の通り
①RSAの鍵を作成
②公開鍵を登録
③秘密鍵を使って接続
①RSAの鍵を作成
ubuntu@ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): ←エンターを押す
Enter passphrase (empty for no passphrase): ←秘密鍵のパスワード
Enter same passphrase again: ←秘密鍵のパスワード
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:YgKwEtosJ+vcZogvaPyFpOdpgkt5irfzQKTq4CEpf3w ubuntu@ubuntu
The key's randomart image is:
+---[RSA 3072]----+
|o |
|.* |
|* * |
|.B . |
|o ... o S |
|=o* .o . |
|@O.O . |
|%*@o= E |
|+BBO.. |
+----[SHA256]-----+
ubuntu@ubuntu:~$ ls -la .ssh
total 16
drwx------ 2 ubuntu ubuntu 4096 Jan 30 19:35 .
drwxr-xr-x 5 ubuntu ubuntu 4096 Jan 27 12:41 ..
-rw------- 1 ubuntu ubuntu 0 Sep 24 19:27 authorized_keys
-rw------- 1 ubuntu ubuntu 2655 Jan 30 19:35 id_rsa ←秘密鍵
-rw-r--r-- 1 ubuntu ubuntu 567 Jan 30 19:35 id_rsa.pub ←公開鍵
②公開鍵を登録
ubuntu@ubuntu:~$ cd .ssh
ubuntu@ubuntu:~/.ssh$ cat id_rsa.pub >> authorized_keys
ubuntu@ubuntu:~/.ssh$ rm id_rsa.pub
ubuntu@ubuntu:~/.ssh$ ls -ln -la
total 16
drwx------ 2 1000 1000 4096 Jan 30 19:58 .
drwxr-xr-x 5 1000 1000 4096 Jan 27 12:41 ..
-rw------- 1 1000 1000 567 Jan 30 19:48 authorized_keys
-rw------- 1 1000 1000 2655 Jan 30 19:35 id_rsa
③秘密鍵を使って接続
SSH SCRを使って、秘密鍵(id_rsa)をクライアント側にコピーする。
後は、teratermで秘密鍵と事前に登録したパスワードを入力して接続する。
無事成功しました。
Linuxのバージョン確認【コマンド】
・Ubuntuのバージョン確認の方法
ubuntu@ubuntu:~$ cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.10
DISTRIB_CODENAME=groovy
DISTRIB_DESCRIPTION="Ubuntu 20.10"
NAME="Ubuntu"
VERSION="20.10 (Groovy Gorilla)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.10"
VERSION_ID="20.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=groovy
UBUNTU_CODENAME=groovy
おまけに、カーネルバージョンを知りたい場合は以下のコマンドを実行
ubuntu@ubuntu:~$ uname -v
#16-Ubuntu SMP PREEMPT Thu Jan 14 10:16:10 UTC 2021
ubuntu@ubuntu:~$ uname -r
5.8.0-1013-raspi
ツイート検索①【Ruby】【Twitter】
・環境
OS:Windows 10
Ruby v:ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]
・手順
以下の流れで実施します。
①RubyInstallerのインストール
②Twitterライブラリのインストール
③APIキーの取得
④APIキーの組み込み
①RubyInstallerのインストール
ここから最新版をダウンロードしインストールします。詳細は割愛させて頂きます。
②Twitterライブラリのインストール
gem install twitter
③APIキーの取得
TwitterのデベロップサイトにアクセスしてAPIキーを取得します。*1
利用用途を選びます。基本何でもいいようです。
国名と名前を入力します。
TwitterのAPIやデータを利用する目的や理由を入力します。
確認画面が出てくるので間違いないか確認します。
問題なければ同意します。
Twitterに登録しているメールアドレスに登録確認メールが来るので、「Confirm your email」を押します。
APIキー等が表示されるので、問題なければ「Skip to dashboard」を押します。
④APIキーの組み込み
Twitter::REST::Clientクラスを利用して、指定されたキーワードで検索し該当するツイートを表示するスクリプトを例として示します。
twitter.rb
require 'twitter'
@client = Twitter::REST::Client.new do |config|
config.consumer_key = "先ほど取得したAPI Key"
config.consumer_secret = "先ほど取得したAPI Key Secret"
end
@client.search("コロナ", result_type: "recent").take(1).each do |tweet|
pp tweet.text
end
>ruby twitter.rb
"コロナなんて、吹き飛ばせ‼️今日も、ファイトです☺️ https://t.co/T9yh7mUsjl"
成功しました。今回は「Twitter API v1.1」でしたが、次回は「Twitter API v2」を使ってみたいと思います。
Webサーバ構築_SSL導入編【Apache】【フリーソフト】
- 環境
OS:Ubuntu
バージョン:Server amd64 20.04.1 LTS
カーネル:5.4.0-52-generic
- 概要
SSLのv2,3とTLSのv1のプロトコルを実装する事ができるフリーソフト。多数のシステムに組み込まれている。
- 構築
ここから最新版(openssl-1.1.1h.tar.gz)をダウンロードし導入します
ubuntu@ubuntu:~$ wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
ubuntu@ubuntu:~$ tar zxvf openssl-1.1.1h.tar.gz
ubuntu@ubuntu:~$ cd openssl-1.1.1h/
ubuntu@ubuntu:~/openssl-1.1.1h$ ./config
ubuntu@ubuntu:~/openssl-1.1.1h$ make
ubuntu@ubuntu:~/openssl-1.1.1h$ make test
ubuntu@ubuntu:~/openssl-1.1.1h$ sudo make install
自己認証局(CA)を作成
ubuntu@ubuntu:~$ cp /usr/local/ssl/misc/CA.pl ./
ubuntu@ubuntu:~$ ./CA.pl -newca
CA certificate filename (or enter to create) →Enterを押す
Making CA certificate ...
続きを読む
Webサーバ構築【Apache】【フリーソフト】
- 環境
OS:Ubuntu
バージョン:Server amd64 20.04.1 LTS
カーネル:5.4.0-52-generic
- 概要
フリーソフトで未だに存在感があり、多くの場所で利用されているWEBサーバの王道。様々なプラットフォームで利用できるようにMPMを採用しており、マルチスレッド対応のため少ないメモリ資源で多数の接続を受け入れる事が可能になっている。
- 構築
ソースコードのダウンロードおよびコンフィギュレーション
ここからwgetコマンドを利用して、最新版(httpd-2.4.46.tar.gz)をダウンロードします。
ubuntu@ubuntu:~$ wget https://ftp.yz.yamagata-u.ac.jp/pub/network/apache//httpd/httpd-2.4.46.tar.gz
ubuntu@ubuntu:~$ tar xvzf httpd-2.4.46.tar.gz
ubuntu@ubuntu:~$ cd httpd-2.4.46/
ubuntu@ubuntu:~/httpd-2.4.46$ ./configure --with-mpm=worker --prefix=/opt/www
checking for chosen layout... Apache
checking for working mkdir -p... yes
//
checking for APR... no
configure: error: APR not found. Please read the documentation.
APRがないと怒られたのでここから最新版(apr-1.6.5.tar.gz)を入れます。
ubuntu@ubuntu:~$ wget https://ftp.riken.jp/net/apache//apr/apr-1.6.5.tar.gz
ubuntu@ubuntu:~$ tar xvfz apr-1.6.5.tar.gz
ubuntu@ubuntu:~$ cd apr-1.6.5/
ubuntu@ubuntu:~/apr-1.6.5$ ./configure
checking build system type... armv7l-unknown-linux-gnueabihf
checking host system type... armv7l-unknown-linux-gnueabihf
//
checking for gcc... no
checking for cc... no
checking for cl.exe... no
コンパイラがないとのことなので、gccコンパイラをインストールします。
ubuntu@ubuntu:~/apr-1.6.5$ sudo apt install gcc
ubuntu@ubuntu:~/apr-1.6.5$ ./configure
ubuntu@ubuntu:~/apr-1.6.5$ make
Command 'make' not found, but can be installed with:
sudo apt install make # version 4.2.1-1.2, or
sudo apt install make-guile # version 4.2.1-1.2
今度は、makeコマンドがないとのことなのでmakeをインストールします。
ubuntu@ubuntu:~/apr-1.6.5$ sudo apt install make
気を取り直して
ubuntu@ubuntu:~/apr-1.6.5$ make
ubuntu@ubuntu:~/apr-1.6.5$ sudo make install
APRのインストールが成功したので、再度コンフィギュレーションを実施。
ubuntu@ubuntu:~/httpd-2.4.46$ ./configure --with-mpm=worker --prefix=/opt/www
checking for chosen layout... Apache
checking for working mkdir -p... yes
//
checking for APR-util... no
configure: error: APR-util not found. Please read the documentation.
APR-utilが足りなかったのでここから最新版(apr-util-1.6.1.tar.gz)を入れます。
ubuntu@ubuntu:~$ wget https://ftp.tsukuba.wide.ad.jp/software/apache//apr/apr-util-1.6.1.tar.gz
ubuntu@ubuntu:~$ tar xvzf apr-util-1.6.1.tar.gz
ubuntu@ubuntu:~$ cd apr-util-1.6.1/
ubuntu@ubuntu:~/apr-util-1.6.1$ ./configure
checking build system type... armv7l-unknown-linux-gnueabihf
checking host system type... armv7l-unknown-linux-gnueabihf
//
checking for APR... no
configure: error: APR could not be located. Please use the --with-apr option.
APRのディレクトリを指定しないといけないので、先ほどのAPRのディレクトリを指定して再度実行。
ubuntu@ubuntu:~/apr-util-1.6.1$ ./configure --with-apr=/home/ubuntu/apr-1.6.5
ubuntu@ubuntu:~/apr-util-1.6.1$ make
xml/apr_xml.c:35:10: fatal error: expat.h: No such file or directory
35 | #include <expat.h>
| ^~~~~~~~~
compilation terminated.
make: *** [/home/ubuntu/apr-util-1.6.1/build/rules.mk:206: xml/apr_xml.lo] Error 1
expatがないとのことなので、以下でインストールし再度実行
ubuntu@ubuntu:~/apr-util-1.6.1$ sudo apt install libexpat1-dev
ubuntu@ubuntu:~/apr-util-1.6.1$ make
ubuntu@ubuntu:~/apr-util-1.6.1$ sudo make install
ここで、警告が出てきましたが無視をします。
libtool: warning: relinking 'libaprutil-1.la'
再度実行すると、今度はPCREが入っていないとのこと。
ubuntu@ubuntu:~/httpd-2.4.46$ ./configure --with-mpm=worker --prefix=/opt/www
checking for chosen layout... Apache
checking for working mkdir -p... yes
//
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
ここからpcre-8.44.tar.gzをダウンロード・インストールします。
ubuntu@ubuntu:~$ wget ftp://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
ubuntu@ubuntu:~$ tar xvfz pcre-8.44.tar.gz
ubuntu@ubuntu:~$ cd pcre-8.44/
ubuntu@ubuntu:~/pcre-8.44$ ./configure
//
configure: error: Invalid C++ compiler or C++ compiler flags
C++が入っていないとのことなのでインストールします。
ubuntu@ubuntu:~/pcre-8.44$ sudo apt install g++
やり直し
ubuntu@ubuntu:~/pcre-8.44$ ./configure
ubuntu@ubuntu:~/pcre-8.44$ make
ubuntu@ubuntu:~/pcre-8.44$ sudo make install
今度こそ
ubuntu@ubuntu:~/httpd-2.4.46$ ./configure --with-mpm=worker --prefix=/opt/www
ubuntu@ubuntu:~/httpd-2.4.46$ make
//
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:48: htpasswd] Error 1
make[2]: Leaving directory '/home/ubuntu/httpd-2.4.46/support'
make[1]: *** [/home/ubuntu/httpd-2.4.46/build/rules.mk:75: all-recursive] Error 1
make[1]: Leaving directory '/home/ubuntu/httpd-2.4.46/support'
make: *** [/home/ubuntu/httpd-2.4.46/build/rules.mk:75: all-recursive] Error 1
aprとapr-utilがバンドル出来ていないので、以下の通りする
ubuntu@ubuntu:~/httpd-2.4.46$ cp -a ../apr-1.6.5 srclib/apr
ubuntu@ubuntu:~/httpd-2.4.46$ cp -a ../apr-util-1.6.1 srclib/apr-util
ubuntu@ubuntu:~/httpd-2.4.46$ ./configure --with-mpm=worker --prefix=/opt/www --with-included-apr --with-included-apr-util
ubuntu@ubuntu:~/httpd-2.4.46$ make
ubuntu@ubuntu:~/httpd-2.4.46$ sudo make install
libpcre.so.1のリンクが張られていないので
ubuntu@ubuntu:~/pcre-8.44$ ldd /opt/www/bin/httpd
linux-vdso.so.1 (0x00007ffc613f2000)
libpcre.so.1 => not found
libaprutil-1.so.0 => /opt/www/lib/libaprutil-1.so.0 (0x00007f6976e81000)
libapr-1.so.0 => /opt/www/lib/libapr-1.so.0 (0x00007f6976e46000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6976e23000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6976c31000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f6976c03000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f6976bc6000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6976bc0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6976f65000)
少し前にインストールしたpcreから拝借
ubuntu@ubuntu:~$ sudo ln -s /home/ubuntu/pcre-8.44/.libs/libpcre.so.1 /opt/www/lib/libpcre.so.1
ubuntu@ubuntu:~$ ldd /opt/www/bin/httpd
linux-vdso.so.1 (0x00007ffcedf31000)
libpcre.so.1 => /opt/www/lib/libpcre.so.1 (0x00007f81b6557000)
libaprutil-1.so.0 => /opt/www/lib/libaprutil-1.so.0 (0x00007f81b6529000)
libapr-1.so.0 => /opt/www/lib/libapr-1.so.0 (0x00007f81b64ee000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f81b64c4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f81b62d2000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f81b62a4000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f81b6267000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f81b6261000)
/lib64/ld-linux-x86-64.so.2 (0x00007f81b6626000)
いよいよ最後だが、httpd.confにServerNameが指定されていないのでエラーが発生するので追記
ubuntu@ubuntu:~$ sudo /opt/www/bin/apachectl
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
/opt/www/conf/httpd.confにServerName 127.0.0.1:80を追記し再度起動
無事に起動
*1:Ver10は入れれません。
ハードディスクの監視【smartctl】【コマンド】
- 概要
ハードディスクを監視するツール
ハードディスクにはS.M.A.R.Tと呼ばれる故障検知システムが備わっており、その情報を取得することができる
- 利用方法
「sudo」はスーパーユーザになるためのコマンドで、ハードディスクの情報を取得するために必要
「smartctl -a」で、「/dev/ハードディスク名」で指定されるハードディスクからすべて情報を取得する