5/6 gitの勉強に集中する
5/6 gitの勉強に集中する
目標・やりたい事は何か?何に興味あるか?
git
Git clone
作る- ブランチの仕組みを理解して作る
- LTとエディターの勉強は休む。
- 今日はプラクティスに集中する、
日常メモ・ちょっとした事・何を感じたか?
- 色々な事を勉強するとあまり集中できないかも。。
何を学んだか?・何がまだ理解できてないのか?
- Git cloneを作らずに、別のディレクトリからpushして嵌った。
- そもそもgitの概念を理解してないからもっと理解を深めるようにしっかり読もう。
5/5 勉強メモと失敗した事
git
クローンしたリポジトリからプッシュする
(m・_・bp) mbp-2 16:13 ~/tutorial % ls sample.txt #sampletxtaddに文章追加 (m・_・bp) mbp-2 16:13 ~/tutorial % vim sample.txt #インデックスに登録 (m・_・bp) mbp-2 16:15 ~/tutorial % git add sample.txt #ファイルにコミット (m・_・bp) mbp-2 16:15 ~/tutorial % git commit -m "addの説明を追加" [master 3830d53] addの説明を追加 1 file changed, 1 insertion(+) #リモートリポジトリにプッシュ (m・_・bp) mbp-2 16:16 ~/tutorial % git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Writing objects: 100% (3/3), 300 bytes | 300.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To uetennis.git.backlog.com:/AAA/tutorial.git 6b32dd2..3830d53 master -> master
リモートリポジトリからプルする
#リモートリポジトリにプッシュした内容を、「tutorial」に取り込む (m・_・bp) mbp-2 16:56 ~/tutorial % git pull origin master From xxxxxxxxxxxxxxxxx.com:/AAA/tutorial * branch master -> FETCH_HEAD Already up to date. #履歴をを確認 (m・_・bp) mbp-2 16:57 ~/tutorial % git log commit 3830d532db6b0c4dfd748f98ef3adbaa9701c73f (HEAD -> master, origin/master) Author: yoshihiro <xxxxxxxx@gmail.com> Date: Tue May 5 16:16:31 2020 +0900 addの説明を追加 commit 6b32dd2d7d53ffb2b0eb7001fa37ba5842d16c39 Author: yoshihiro <xxxxxxx@gmail.com> Date: Mon May 4 16:39:23 2020 +0900 <first commit> (m・_・bp) mbp-2 16:58 ~/tutorial % cat sample.txt git is good tutorial add
競合状態でプッシュする
clone作ってないから失敗
#内容追加 (m・_・bp) mbp-2 16:59 ~/tutorial % vi sample.txt 1 git is good 2 tutorial add 3 commit wow (m・_・bp) mbp-2 16:58 ~/tutorial % cat sample.txt git is good tutorial add (m・_・bp) mbp-2 16:59 ~/tutorial % vi sample.txt (m・_・bp) mbp-2 17:44 ~/tutorial % cat sample.txt git is good tutorial add commit wow (m・_・bp) mbp-2 17:28 ~/tutorial % git add sample.txt (m・_・bp) mbp-2 17:43 ~/tutorial % git commit -m "commitの内容追加" [master 39726fb] commitの内容追加 1 file changed, 1 insertion(+) #tutoria2ディレクトリの作業 (m・_・bp) mbp-2 17:45 ~/tutorial % cd (m・_・bp) mbp-2 17:47 ~ % mkdir tutorial2 (m・_・bp) mbp-2 17:47 ~ % cd tutorial2 (m・_・bp) mbp-2 17:47 ~/tutorial2 % vi sample.txt (m・_・bp) mbp-2 17:48 ~/tutorial2 % cat sample.txt yossiiiiのGitコマンド add 変更をインデックスに登録する pull リモートリポジトリの内容を取得する #tutorial2でコミット (m・_・bp) mbp-2 19:04 ~/tutorial2 % git commit -m "pullの説明追加" [master (root-commit) b82e34a] pullの説明追加 1 file changed, 3 insertions(+) create mode 100644 sample.txt (m・_・bp) mbp-2 19:10 ~/tutorial2 % git remote add origin uetenxxxxxxxxxx.com:/AAA/tutorial.git (m・_・bp) mbp-2 19:17 ~/tutorial2 % vim sample.txt (m・_・bp) mbp-2 19:21 ~/tutorial2 % git commit -m "addの説明を追加2" On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory ) modified: sample.txt no changes added to commit (use "git add" and/or "git commit -a") (m・_・bp) mbp-2 19:22 ~/tutorial2 % git restore sample.txt (m・_・bp) mbp-2 19:24 ~/tutorial2 % git add sample.txt (m・_・bp) mbp-2 19:24 ~/tutorial2 % git commit -m "addの説明を追加2" On branch master nothing to commit, working tree clean
LTの構成を考えたい。
5/5 LTの構成を考えたい。
目標・やりたい事は何か?何に興味あるか?
LTの準備・調べたい事
- gitとgithubの歴史
- 人間ドラマ
- スライドの構成
gitの勉強
- サル先生のgit入門で勉強してgit理解したい
vscode
- ショートカット覚える
- Emacsについて調べる
日常メモ・ちょっとした事・何を感じたか?
- 何かを作りたくてエンジニアの勉強したのだけれど、だんだんと技術に触る事が楽しくなってきたし、技術を触る事が目的になってきたかも。
- 運動不足解消が目的で初めたテニスなのに、いつの間にかテニスをやる事が目的になった経験があるから、今エンジニアの勉強やっている経験と似ている感覚!
- RanCatかわいい!癒やされる!
- HyperSwithは設定しっかりすると便利

5/4 勉強メモ
ファイルをコミット
# tutorialディレクトリの中に「sample.txt」という名前でテキストファイルを作成 (m・_・bp) mbp-2 16:04 ~/tutorial % vim sample.txt # statusコマンドを実行してtutorialディレクトリの状態を確認 (m・_・bp) mbp-2 16:07 ~/tutorial % git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) sample.txt #履歴の追跡対象になっていないファイル nothing added to commit but untracked files present (use "git add" to track) #ファイルをインデックスに登録するにはaddコマンドを使用 (m・_・bp) mbp-2 16:08 ~/tutorial % git add sample.txt # パラメータに「.」を指定すると、すべてのファイルをインデックスに登録することができる (m・_・bp) mbp-2 16:12 ~/tutorial % git add . # インデックスに追加されたか確認 (m・_・bp) mbp-2 16:25 ~/tutorial % git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: sample.txt #インデックスに追加されている # commitする (m・_・bp) mbp-2 16:25 ~/tutorial % git commit -m "<first commit>" [master (root-commit) 6b32dd2] <first commit> 1 file changed, 1 insertion(+) create mode 100644 sample.txt # 確認 (m・_・bp) mbp-2 16:39 ~/tutorial % git status On branch master nothing to commit, working tree clean # リポジトリの変更履歴を確認 (m・_・bp) mbp-2 16:40 ~/tutorial % git log commit 6b32dd2d7d53ffb2b0eb7001fa37ba5842d16c39 (HEAD -> master) Author: yoshihiro <xxxxxx@gmail.com> Date: Mon May 4 16:39:23 2020 +0900 <first commit>
リモートリポジトリにプッシュ
# backlogにssh接続 (m・_・bp) mbp-2 20:31 ~/tutorial % ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/xxxxxyoshihiro/.ssh/id_rsa): /Users/uekiyoshihiro/.ssh/id_rsa already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users//.ssh/id_rsa. Your public key has been saved in /Users/uekiyoshihiro/.ssh/id_rsa.pub. The key fingerprint is: SHA256:FToJ4RtgEC8WC87bJvgotil65x8bSMfEm08y4Oxtkq8 uekiyoshihiro@mbp-2.local The keys randomart image is: +---[RSA 3072]----+ |. +oo o. . | |o. = + . o . | | o+ o = + . | |..o+ + = o | |.o o+ O S | | ooo = = | |o.. = = . | |+ + .+ + | |++ oEo+ | +----[SHA256]-----+ #生成したSSH 鍵の公開鍵の内容はcatコマンドを実行し、中身をbacklogに貼り付け (m・_・bp) mbp-2 20:32 ~/tutorial % cat ~/.ssh/id_rsa.pub # originという名前でリモートレポジトリを登録! # リモートリポジトリのアドレスは名前を付けて記録できる。記録しておくと、pushするときには毎回長いリモートリポジトリのアドレスを入力する必要がなくなる。 # リモートリポジトリを追加するには、remoteコマンドを使用 (m・_・bp) mbp-2 20:07 ~/tutorial % git remote add origin uetennis@uetennis.git.backlog.com:/AAA/tutorial.git #リポジトリのプッシュ # 実行オプションで-uを指定すると、次回以降はそのブランチ名の指定を省略できる。けど一番最初、空のリモートリポジトリにpushするときはリモートリポジトリ名やブランチ名を省略できない (m・_・bp) mbp-2 20:33 ~/tutorial % git push -u origin master Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 225 bytes | 225.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To uetennis.git.backlog.com:/AAA/tutorial.git * [new branch] master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.
参考URL

5/4 LTのテーマはgitとgithubについてにしようと思う(仮)
5/4 LTのテーマはgitとgithubについてにしようと思う(仮)
目標・やりたい事は何か?何に興味あるか?
LT
- LTに向けての勉強と資料作りの内容を考える。
- Keynoteにするかgoogleスライドにするか調べる。
Git
- サルでもわかるgit入門を通じてgitを理解したい
- Gitの基本を理解したい
VScode
- Vscode実践ガイドを読み、vscodeでgitを使いたい。
iterm2を勉強
- 便利らしいから触ってみたい。
日常メモ・ちょっとした事・何を感じたか?
- Rubymineをちょっとしたメモ帳にするのはあまり向いてないかも。音が気になる。(もしかしたら、vscodeとrubymine同時起動が原意だからかも)
- そもそも自分のマシンスペックがあまり良くないかも。
- Vimでメモ取ろうかと思ったが、vimrcの設定が読み込まれなくて、拡張があまり上手くできなかった。今まで通りVScodeでメモをとる。
- VScode触りたての頃もそれはそれで、苦労したな。vscodeの操作を慣れる為に勉強のメモをしていたら、いつの間にか、メインになったかも。
- 細かい所を気にしない性格だが、エンジニアにとってはマイナスになることが多いから、半年かけてエンジニアに向いている性格になりたい。
- 勉強続けていたらだんだんそういう性格になるかも。(願望)
- 上手くいかない時間がながければ、上手くいった喜びは大きいと感じた。
- サル先生の博多弁、かわいい。
- 今は、あえて就活活動するよりも勉強する事に集中しているけど、知人に心配されて理解を得られない事もあり、疲れるから買い物行く時やゴミ捨て行く時もできるだけ知人に会わないような時間を見計らって行っている。
- 心配されたくないから勉強してもっと実力つけたい。
何を学んだか?・何がまだ理解できてないのか?
- 指摘されて気付ける事は多い。
- 丁寧に読むクセが足りないから嵌る事が多いと反省。
- インデントレベルを意識する事はとても大切。些細な事を意識しないと読みにくいし、エラーになる。
- 根気強く調べる事って大切だと学んだ。
5/3 勉強メモ
git,ファイルを編集前の状態に戻したい時
- 手動管理
- あらかじめ編集前のファイルをコピーしておく方法
- ファイルを編集するごとに自分でファイルをコピーするというのは大変で、間違いも起こしやすくなる。
チームで共有しているファイルの場合では、二人で同時に編集して先に編集したファイルが消えたら大変!
git管理
- Gitとは、分散型バージョン管理システム
- ファイルの状態を好きなときに更新履歴として保存しておくことができる。手動より楽で正確!
- 他人の編集した最新ファイルを上書きしようとすると、サーバにアップロードした時に警告が出る。
- 知らず知らずのうちに他人の編集内容を上書きしてしまうといった失敗は起らないよ。
コミット
- バグ修正や機能追加などの異なる意味を持つ変更は、できるだけ分けてコミットするようにする。
- 変更内容のわかりやすいコメントを書く。 1行目 : コミットでの変更内容の要約 2行目 : 空行 3行目以降 : 変更した理由
SourceTree
- GUIの操作
- 今回は使わない
gitのインストール コンソール
(m・_・bp) mbp-2 20:11 ~ % brew install git #brewはmacのパッケージ管理システム #バージョン確認 (m・_・bp) mbp-2 20:18 ~ % git --version git version 2.24.1 (Apple Git-126)
初期設定
#ユーザー名 (m・_・bp) mbp-2 20:23 ~ % git config --global user.name "<xxxxx>" #メールアドレス (m・_・bp) mbp-2 20:29 ~ % git config --global user.email "<xxxxxxxx@xxxxx.xxx>" #gitの出力をカラーリングする (m・_・bp) mbp-2 20:30 ~ % git config --global color.ui auto #「checkout」を「co」と省略しても実行できるようにaliasを設定 git config --global alias.co checkout
新しいリポジトリをローカルに作成
- 「tutorial」という名前で空のディレクトリを作成して、Gitの管理下に置く
#tutorialのディレクトリ作る (m・_・bp) mbp-2 20:43 ~ % mkdir tutorial #tutorialのディレクトリに移動 (m・_・bp) mbp-2 20:43 ~ % cd tutorial #tutorialディレクトリをGitの管理下に置く (m・_・bp) mbp-2 20:43 ~/tutorial % git init Initialized empty Git repository in /Users/ホームディレクトリ/tutorial/.git/
参考URL
5/3 nginxでSSL対応サイトが作れて嬉しい!
5/3 nginxでSSL対応サイトが作れて嬉しい!
目標・やりたい事は何か?何に興味あるか?
- rubymineインストール
- rubymineでメモをとる
- Gitの勉強
- 猿でもわかるgit入門
日常メモ・ちょっとした事・何を感じたか?
- 問題点を成長だととらえられるフレームワークをちゅっと模索
- 少しずつ日記に反映したい
- やりたいことと技術力のバランスが大事かなと最近思う。どっちかに偏りすぎるのはあまりヘルシーじゃないかも
- sslができて泣いちゃうぐらいに嬉しかった!
何を学んだか?・何がまだ理解できてないのか?
- 少し前のログから解決策が出てくることを学んだ
- 証明書の置き場を考えてなかった。PATHを意識せねば
- プロセスを消すためにKillコマンドした。緊張した。
- サーバーの再起動でエラー解決。 テラテイルで同じ悩みをもつ人がいた。
- 先頭にhttps:// をつけるのをしてなくてオレオレ証明書が出来ない原因が他にあると思い嵌った
- ドメイン変えたら上手くいった。もしかして、オレオレ証明書と Let's Encryptで証明書が1つのドメインに2つ証明書があったらだめかも
- Deeplの翻訳精度が高くて、Linuxのエラーを読める。
勉強メモ
オレオレ証明書
#rootに行く (桜・_・VPS) 17:39:50 :~$ su #sudoだめだった # 保存先を/etc/sslにしたいから(/etc/nginxでもいい) /etc/sslのディレクトリに移動 root# cd /etc/ssl # 秘密鍵 (Private Key):server.keyを作成 /etc/ssl# openssl genrsa 2048 > server.key Generating RSA private key, 2048 bit long modulus (2 primes) ........................................................................................................+++++ .............+++++ e is 65537 (0x010001) #証明書署名要求 (CSR):server.csrを作成 /etc/ssl# openssl req -new -key server.key > server.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:JP # 国 State or Province Name (full name) [Some-State]:TOKYO # 都道府県 Locality Name (eg, city) []:SETAGAYAKU #市区町村名 Organization Name (eg, company) [Internet Widgits Pty Ltd]: #会社名。Enterで飛ばしてもOK。 Organizational Unit Name (eg, section) []: #組織名。Enterで飛ばしてもOK。 Common Name (e.g. server FQDN or YOUR name) []:www.nekonohimitu.work #Virtual Hostのドメイン名 Email Address []:akatukijun@gmail.com #meiladress Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: #Enterで飛ばす An optional company name []: #Enterで飛ばす # 作成されたserver.csrの中身を確認 /etc/ssl# openssl req -text < server.csr # # CSRに署名、サーバ証明書(CRT)作成 /etc/ssl# openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt Signature ok subject=C = JP, ST = TOKYO, L = SETAGAYAKU, O = Internet Widgits Pty Ltd, CN = www.nekonohimitu.work, emailAddress = akatukijun@gmail.com Getting Private key # getting Private keyと出ればOK #作成されたserver.crtの中身を確認 /etc/ssl# openssl x509 -text < server.crt # /etc/sslのディレクトリに入っているか確認 /etc/ssl# ls /etc/ssl certs openssl.cnf private server.crt server.csr server.key #**もし誤って作成したら全部削除してから作り直す必要がある $ apt-get --purge openssl #** # Virtual Hostの設定ファイル修正 (桜・_・VPS) 15:26:04 :~$ sudo vim /etc/nginx/sites-available/nekonohimitu.work server { listen 443 ssl; server_name www.nekonohimitu.work; ssl on; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; access_log /srv/www.nekonohimitu.work/log/access.log; error_log /srv/www.nekonohimitu.work/log/error.log; location / { root /srv/www.nekonohimitu.work/public/; index indexssl.html; } } # /etc/nginx/server.crtはCRTの置き場 # /etc/nginx/server.keyはkeyの置き場 $ sudo service nginx reload # nginx.confを再読込
- www.nekonohimitu.workの先頭にhttps://をつける https://www.nekonohimitu.work
Let's Encryptで証明書を取ってVirtualhost + SSL対応サイトを作る
- こちらのサイトでnginx,Debian10と入力するとコマンドを教えてくれる certbot
# certbotのインストール sudo apt-get install certbot python-certbot-nginx ## 証明書の取得 80番と443番ポートを開けておく必要がある nginxをstopして (桜・_・VPS) 19:12:40 :~$ sudo certbot certonly --nginx #証明書の場所確認 (桜・_・VPS) 19:18:14 :~$ sudo ls /etc/letsencrypt/live/ enginxnohimitu.work README www.nekonohimitu.work # 発行された証明書たちを確認 (桜・_・VPS) 12:06:12 :~$ sudo ls -l /etc/letsencrypt/live/enginxnohimitu.work total 4 lrwxrwxrwx 1 root root 43 May 2 20:24 cert.pem -> ../../archive/enginxnohimitu.work/cert1.pem lrwxrwxrwx 1 root root 44 May 2 20:24 chain.pem -> ../../archive/enginxnohimitu.work/chain1.pem lrwxrwxrwx 1 root root 48 May 2 20:24 fullchain.pem -> ../../archive/enginxnohimitu.work/fullchain1.pem lrwxrwxrwx 1 root root 46 May 2 20:24 privkey.pem -> ../../archive/enginxnohimitu.work/privkey1.pem -rw-r--r-- 1 root root 692 May 2 20:24 README # cert.pem 証明書 # chain.pem 中間証明書 # fullchain.pem 証明書+中間証明書の連結ファイル # privkey.pem 秘密鍵 # confファイルには # ssl_certificate:証明書+中間証明書の連結ファイル(fullchain.pem) # ssl_certificate_key:秘密鍵(privkey.pem) # を設定する。 #hymlの編集 /srv/enginxnohimitu.work/public/index.html /srv/enginxnohimitu.work/public/sslindex.html #ssl用のhtml # enginxnohimitu.workの設定ファイル (桜・_・VPS) 20:43:51 :~$ sudo vim /etc/nginx/sites-available/enginxnohimitu.work server { listen 443 ssl; server_name enginxnohimitu.work; ssl_certificate /etc/letsencrypt/live/enginxnohimitu.work/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/enginxnohimitu.work/privkey.pem; access_log /srv/enginxnohimitu.work/log/access.log; error_log /srv/enginxnohimitu.work/log/error.log; location / { root /srv/enginxnohimitu.work/public/; index sslindex.html; #ssl用のhtmlのパス } } server { listen 80; server_name enginxnohimitu.work; access_log /srv/enginxnohimitu.work/log/access.log; error_log /srv/enginxnohimitu.work/log/error.log; location / { root /srv/enginxnohimitu.work/public/; index index.html; } } #nginx止める (桜・_・VPS) 20:43:08 :~$ sudo /etc/init.d/nginx stop [ ok ] Stopping nginx (via systemctl): nginx.service. #nginxをスタート (桜・_・VPS) 20:43:42 :~$ sudo /etc/init.d/nginx start [ ok ] Starting nginx (via systemctl): nginx.service. # nginx.confを再読込 (桜・_・VPS) 20:43:46 :~$ sudo service nginx reload
参考
- nginxの最近のブログ記事
- nginx1
- nginx2
- nginx3
- nginx4
- nginx5
- nginx6
- VirtualHostについて(動画)
- memcachedを知り尽くす
- 猫とテニス。nginx
- 自作のHTMLをインターネットで配信する方法
- [033] Nginxのインストール
- nginxバーチャルホスト
- Nginx NOT FOUNDになる時のログの見方
- sslの概念
- オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている
- プログラミングビギナーNekoteniがあなたに贈る!NginxでSSLの巻
- nginx で ssl 設定をする
- もう二度とハマらない、SSL証明書の設定
- もう二度とハマらない、SSL個人認証局の設定
- サーバ証明書の作成
SSLで嵌り倒している事を解決させる事に挑戦したい
SSLで嵌り倒している事を解決させる事に挑戦したい
目標・やりたい事は何か?何に興味あるか?
[....] Starting nginx (via systemctl): nginx.serviceJob for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. failed!
の問題を解決させたい
- こちらの日報で’systemctl status nginx.service”と "journalctl -xe" を調べる事ができるみたいだ。
- $ sudo systemcl status nginx.service
と$ sudo journalctl -xe
を開く
オレオレ証明書作りたい
- Let’s EncryptでSSL証明書取得したい
- Rubymineを試したい。vscodeとどっちにしようかなと思う。
- エディターの事を調べるのは結構楽しい
日常メモ・ちょっとした事・何を感じたか?
- 夜に日記や日報を書こうとすると順調な時は書けるけど、何かで嵌り倒すと後回しにしがちだから朝に書く事を試す。
- Dashのスニペット機能はすごく便利
勉強メモ 復習
nginx で VirtualHost を使って複数のドメインのサイトを立ち上げ
# locateコマンドはファイルのパスを調べるのに便利 ~$ sudo apt install locate #nslookupのコマンドインストール root# apt-get install dnsutils #DNSが設定されているか調べる ~$ nslookup nginxnohimitu.work Server: 210.188.224.10 Address: 210.188.224.10#5 ~$ nslookup nekonohimitu.work Server: 210.188.224.10 Address: 210.188.224.10#5 # /srv/以下に提供するコンテンツを置く srvの代わりにpublicでも他の名前でもいい :~$ sudo mkdir -p /srv/nekonohimitu.work/{public,private,log,backup} # index.htmlを作成しhtmlを記述 :~$ sudo vim /srv/nekonohimitu.work/public/index.html <!DOCTYPE html> <html lang="ja" <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>yoshihiro-VirtualHost</title> </head> <h1>yoshihiro-VirtualHost</h1 <body> <h1>yoshihiro-VirtualHost</h1> <p>VirtualHost-test</p> <p>VirtualHost-test</p> <p>VirtualHost-test</p> <p>VirtualHost-test</p> <p>VirtualHost-test</p> </body> </html> # wwwの/srv/以下に提供するコンテンツを置く sudo mkdir -p /srv/www.nekonohimitu.work/{public,private,log,backup} #2つめの index.htmlを作成しhtmlを記述 :~$ sudo vim /srv/www.nekonohimitu.work/public/index.html <!DOCTYPE html> <html lang="ja" <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>nginxnohimitu</title> </head> <h1>nginxnohimitu</h1 <body> <h1>nginxnohimitu</h1> <p>VirtualHostですーーー</p> <p>VirtualHostですーーー</p> <p>VirtualHostですーーー</p> <p>VirtualHostですーーー</p> <p>VirtualHostですーーー</p> <p>VirtualHostですーーー</p> <p>VirtualHostですーーー</p> </body> </html> sudo mkdir -p /etc/nginx/sites-available /etc/nginx/sites-enabled #設定ファイル置き場(available)と設定ファイルを作成(enabled ~$ sudo vim /etc/nginx/sites-available/nekonohimitu.work #設定ファイルを記 server { listen 80; server_name nekonohimitu.work; access_log /srv/nekonohimitu.work/log/access.log; error_log /srv/nekonohimitu.work/log/error.log; location / { root /srv/nekonohimitu.work/public/; index index.html; } } server { listen 80; server_name www.nekonohimitu.work; access_log /srv/www.nekonohimitu.work/log/access.log; error_log /srv/www.nekonohimitu.work/log/error.log; location / { root /srv/www.nekonohimitu.work/public/; index index.html; } } #シンボリックリンクを作成 :~$ sudo ln -s /etc/nginx/sites-available/nekonohimitu.work /etc/nginx/sites-enabled/nekonohimitu.work サイトを無効化するときにsites-enabled のリンクを消すだけでいい。シンボリックリンクのもう一つの使い方(sites-availavleの設定ファイ ルは残る)→読み込みはsites-enabledでリンクを読み込んでいる # /etc/nginx/nginx.confの設定ファイルをコピ- :~$ sudo cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org :~$ sudo vim /etc/nginx/nginx.conf ## # Virtual Host Configs # include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; include /etc/nginx/sites-enabled/*.work; #追記 最初記述した時は[;]がなくて構文エラー :~$ sudo /etc/init.d/nginx start #起動せず [....] Starting nginx (via systemctl): nginx.serviceJob for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. failed :~$ sudo nginx -t #構文チェック nginx: [emerg] unexpected "}" in /etc/nginx/nginx.conf:64 nginx: configuration file /etc/nginx/nginx.conf test faile include /etc/nginx/sites-enabled/*.work ; #[;]がなかっ # ネイキッドドメイン(wwwがない)は読み込んでるけど、wwwのドメインは読み込まれない ~$ nslookup www.nekonohimitu.work Server: 210.188.224.10 Address: 210.188.224.10#5 ** server cant find www.nekonohimitu.work: NXDOMAIN #wwwはみつかってないよ # 原因はお名前ドットコムでDNSの設定していな nslookup www.nekonohimitu.work #DNSの設定したらOK Server: 210.188.224.10 Address: 210.188.224.10#5 :~$ sudo nginx -t nginx: [warn] conflicting server name "nekonohimitu.work" on 0.0.0.0:80, ignored nginx: [warn] conflicting server name "www.nekonohimitu.work" on 0.0.0.0:80, ignored nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfu #再起動 ~$ sudo /etc/init.d/nginx stop ~$ sudo /etc/init.d/nginx start
ssh接続 rootログインなし、パスワード認証なし、port指定
sshの復習用メモ
- sshとは
- sshd (ssh daemon)
- scp (secure copy/secure copy protocol)
- ネットワークを介して別のコンピュータを操作するsshの機能の一つで、手元のコンピュータとの間でファイルをコピーするもの。また、そのためのコマンドおよびプロトコル(通信規約)。
- sshは手元のコンピュータから遠隔地のコンピュータへの通信を暗号化し、認証情報やコマンドの発行、応答などの通信内容を安全にやりとりできる。scpはssh上でのファイルコピー機能で、接続先のコンピュータとの間で安全にファイルの送受信が行える。
- scpのコマンドの形式などはUNIXの標準ファイルコピーコマンドであるcpやrcpとほぼ同じで、これらと同じ感覚で使うことができる。一方、ssh上でファイル転送を行なうコマンドおよびプロトコルにはSFTPと呼ばれるものもあり、こちらはFTPに似たコマンド体系で操作することができる。
ウェルノウンポートとは
- TCP/IPによる通信で利用されるTCPやUDPのポート番号のうち、著名なサービスやプロトコルが利用するために予約されている0番から1023番のこと。
- インターネットなどのTCP/IPネットワークに接続されたコンピュータは、通信プロトコル(通信規約)のTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)を使用する際に、0番から65535番までの番号で識別される「ポート」(port)と呼ばれる接続の窓口を利用する。
- このうち、0から1023までの各ポートはそれぞれ特定のサービスやプロトコルが利用することが広く知られており、インターネットで公開するサーバはその番号を当該サービス、プロトコルで利用することが推奨されている。特に有名なのはHTTPの80番やFTPの20・21番、SMTPの25番、POP3の110番、DNSの53番などである。また、新しいプロトコルやサービスは1024番以降を利用することが慣例となっている。
- ただし、サーバ上でどのサービスをどのポートで動作させるかはソフトウェアによって設定できるようになっていることが多く、必ずしもウェルノウンポートでなければそのサービスを起動・利用できないわけではない。実際、HTTPのプロキシサーバなど、特殊な用途のためにわざと本来とは別のポート番号でサービスを提供する場合もある。
- PermitRootLoginを変更したい
-
$ sudo vi /etc/ssh/sshd_config
を入力してSSHの設定ファイルを開く - Rootログインを禁止する為に
- #PermitRootLogin prohibit-passwordを
- PermitRootLogin noに変更
-
- port変更
- パスワードログインの禁止、公開鍵でのログインのみできるようにする
#PasswordAuthentication yesを
PasswordAuthentication noに変更
escボタンでコマンドモードに切り替えて、:wq!で保存して終了
$ sudo vim /etc/ssh/sshd_config # Port 22をxxxxに変更 :well-known portから変更 # PermitRootLogin yesのyesをnoに変更 :sshでrootログイン禁止 # PasswordAuthentication yesのyesをnoに変更 :sshでパスワードログイン禁止 $ sudo /etc/init.d/ssh restart # sshd再起動 # MacのTerminalから実行 $ ssh username@IPアドレス -p xxxx # -pでポート番号指定
ssh接続 ・ 手順
手順 サーバー
:~$ mkdir ~/.ssh # ~/.sshのディレクトリを作る。 :~$ chmod 700 ~/.ssh # 権限与える
手順 ・ クライアント (ターミナル)
- $ ssh-keygen -t rsa #鍵を作る
- $ ls .ssh #鍵の確認 id_rsaとid_rsa.pubの2つあればいい。
- $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys #公開認証鍵を送る
- Are you sure you want to continue connecting (yes/no/[fingerprint])? yes #yesと入力
- Password: #パスワード入力
- id_rsa.pub 100% 571 69.9KB/s 00:00 # 鍵が送れた。
#ミスも記載しています。 $ ssh-keygen -t rsa #鍵を作る $ ls .ssh #鍵の確認 id_rsaとid_rsa.pubの2つあればいい。 id_rsa id_rsa.pub known_hosts Generating public/private rsa key pair. Enter file in which to save the key (/Users/xxxxxxxx/.ssh/id_rsa): Created directory '/Users/xxxxxxxx/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/xxxxxxxx/.ssh/id_rsa. Your public key has been saved in /Users/xxxxxxxx/.ssh/id_rsa.pub. The key fingerprint is: SHA256:vyb0pQ3j3NBRYtGORKUUPen5yn/T/SjvFXKL8ffvXt0 xxxxxxxx@mbp The key's randomart image is: +---[RSA xxxx]----+ | .=*.. | | .+.* | | o.* o | | o + | | S . + + | | ..+ o * *| | . +.O o +E| | . *.+ o+B| | o. +++%| +----[SHAxxx]-----+ $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys # 公開認証鍵を送る。 ssh: connect to host アドレス port 22: Connection refused #しかし、port番号を変更していて22番にもどした。 lost connection $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys # 公開認証鍵を送る The authenticity of host 'アドレス (アドレス)' can't be established. ECDSA key fingerprint is SHA256:HygdwrWMmJGzJNbqbH6iMGdrAxj5nUcwokoltR+iImk. Are you sure you want to continue connecting (yes/no/[fingerprint])? # Return押して失敗 Host key verification failed. lost connection $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys # 公開認証鍵を送る The authenticity of host 'アドレス (アドレス)' can't be established. ECDSA key fingerprint is SHA256:HygdwrWMmJGzJNbqbH6iMGdrAxj5nUcwokoltR+iImk. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes #yes入力 Warning: Permanently added 'アドレス' (ECDSA) to the list of known hosts. Password: #パスワード入力 id_rsa.pub 100% 571 69.9KB/s 00:00 # 鍵が送れた。
手順・ サーバー
- :~$ cd ~/.ssh # ~/.sshのディレクトリに移動
- :~/.ssh$ ls # authorized_keysがあるか確認。もしあれば、公開認証鍵が送られている。
- :~/.ssh$ chmod 600 authorized_keys # authorized_keysに権限を与える。
- :~$ sudo vim /etc/ssh/sshd_config # 設定変更
- :~$ sudo /etc/init.d/ssh restart #sshの再起動...ちなみにサーバーの再起動では反映されないから注意
:~$ cd ~/.ssh # ~/.sshのディレクトリに移動 :~/.ssh$ ls # authorized_keysがあるか確認。もしあれば、公開認証鍵が送られている。 authorized_keys :~/.ssh$ chmod 600 authorized_keys # authorized_keysに権限を与える。 :~/.ssh$ cd :~$ sudo vim /etc/ssh/sshd_config # 設定変更 :~$ sudo /etc/init.d/ssh restart #sshの再起動...ちなみにサーバーの再起動では反映されないから注意 [ ok ] Restarting ssh (via systemctl): ssh.service. :~$
ssh接続 ・ rootログインなし・ポート22ログインなし・パスワード認証なしでログイン
$ ssh root@アドレス #rootログイン 失敗でOK ssh: connect to host アドレス port 22: Connection refused $ ssh usename@アドレス #デフォルトのport22 失敗でOK ssh: connect to host アドレス port 22: Connection refused $ ssh usename@アドレス -p xxxx # /etc/ssh/sshd_configに設定したpirt番号 ログイン成功 Linuxxxxxxxxxxxxx-amdxx #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Apr xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx :~$