Tech Potage

Webエンジニア目指してフィヨルドブートキャンプで学習中です

rbenv で Ruby 安定版のインストールとバージョン切り替えをする

rbenv で Ruby 安定版のインストールとバージョン切り替えをする

Ruby を書き始める前の最低限の設定です。

  • rbenv : Ruby のバージョンを切り替えるツール
  • ruby-build : rbenv で install コマンドを使用するためのプラグイン

目次

環境

rbenv セットアップ

rbenv/rbenv: Manage your app's Ruby environment
GitHub

rbenv インストール

Mac だとbrew が推奨

$ brew install rbenv ruby-build

rbenv 初期設定

パスを /Users/<ユーザー名>/.rbenv/shims/ruby に変更

インストールしただけだと rbenvRuby が呼ばれません。
この時点では下記の場所の Ruby を実行しています。

$ which ruby
/usr/bin/ruby

こちらを /Users/<ユーザー名>/.rbenv/shims/ruby へ変更する必要があります。


まず、初期化します。

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:

eval "$(rbenv init - zsh)"

メッセージにある指示に従って下記を実行すると、.zshrceval "$(rbenv init - zsh)" が書き込まれます。
ここは自分もよく理解していません。

  • eval は文字列をコマンドとして実行します。
  • $(...) で囲んだコマンドは実行結果を出力して展開します。

この2つを合わせて、zsh 起動時に rbenv init をしてパスを書き込むとといった形?と解釈しています。

$ echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc

source コマンドにて ~/.zshrc を更新します。
シェルを再起動するか、これをしないと $PATH/Users/hrk/.rbenv/shims が書き込まれません。

$ source ~/.zshrc

再び which コマンドにて確認します。

$ which ruby
/Users/hrk/.rbenv/shims/ruby

パスが変更されました。
ここまでして、インストールとバージョンの変更が可能になります。

参考リンク

rbenv/rbenv: Manage your app's Ruby environment
How rbenv hooks into your shell を参照

上記はわかりにくいので以下を参照するとよい
rbenvでバージョンがうまく切り替わらなかった時にやったこと - Qiita

こちらもおすすめ
rbenvについて - gallardo diary

Ruby のインストールとバージョンの切り替え

rbenv/rbenv: Manage your app's Ruby environment
Installing Ruby versions を参照

公式サイト で最新安定版を確認してインストールします。

$ rbenv install 3.1.2

global でバージョンを適用します。
今回は安定版の 3.1.2
- global はユーザー単位 - globalディレクトリ単位

$ rbenv global 3.1.2

バージョン確認して最新版がインストールされていれば OK です。

$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin19]

これで OK !

GitHub への認証方法を SSH から https に変更する際の落とし穴

GitHub への認証方法を SSH から https に変更する際の落とし穴

FBCのプルリクのプラクティス。
以前、GitHubSSH 接続をしましたが、推奨が https ということで、今回は https で接続しました。
最初から https で設定する人にはそこまで参考にならない記事ですが、SSH で接続した際に .git/config~/.gitconfig の設定を変えた覚えがある人は参考になるかもしれません(要するにこれらの設定が悪さをしていた)。
GitHub に SSH で接続する際に詰まったこと - Tech Potage ← 自分の場合はこの記事の最後の設定が原因でした。

目次

環境

SSH の情報を消しておく

SSH の情報が残っているとそれで接続されてしまう可能性があるので削除します。

  • GitHub 上の SSH 公開鍵を削除
  • ~/.ssh/ の公開鍵と秘密鍵を削除
  • ~/.ssh/known_hostsGitHub の情報を削除

git config の設定を確認

以下のコマンドで .git/config に記載されているリモートリポジトリの URL を確認できます。

$ git config remote.origin.url

URL が https なら...

こちらの結果が以下の場合、問題なく https 接続できるはずです。

https://github.com/<ユーザー名>/<リポジトリ名>.git

駄目な場合は ~/.gitconfig 下の設定を確認 を参照してください。

URL が SSH なら...

以下の場合は SSH で接続されてしまっています。

git@github.com:<ユーザー名>/<リポジトリ名>.git

以下のコマンドで .git/config の URL を https に書き換えます。

$ git remote set-url origin https://github.com/<ユーザー名>/<リポジトリ名>.git

再び git config remote.origin.url コマンドで確認した結果が https に変わっていたら成功、接続できるはずです。
駄目な場合は ~/.gitconfig 下の設定を確認 を参照してください。

~/.gitconfig 下の設定を確認

自分の場合は ~/.gitconfig の以下の設定が悪さをしていました。
SSH 接続に切り替える設定です。
~/.gitconfig はglobal 設定なので、local 設定の .git/config より優先されます。
したがって、いくら .git/config をいじっても変化がなかったということです。

[url "github:"]
    InsteadOf = https://github.com/
    InsteadOf = git@github.com:

これを消して完了!

GitHub に SSH で接続する際に詰まったこと

GitHubSSH で接続する際に詰まったこと

フィヨルドブートキャンプのプラクティスにて、プルリクを練習するために Git と GithubSSHhttps で接続する必要がありました。
今回は SSH を用いた際に詰まった箇所(ユーザ名とパスワードを求められてしまう)を書き留めます。詳細な接続手順については省略。

目次

環境

リモートリポジトリを紐つけてみるが...『パスワード認証は August 13, 2021 に使えなくなったから別の認証にしてね』のメッセージ

ローカルリポジトリにて以下のコマンドを実行して、リモートリポジトリと紐付けます。

$ git remote add origin url

git push を試すと...(-u を付けるとこれ以降は引数を省略可能になる)

$ git push -u origin main

以下のようなメッセージが表示されます。

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/conpotaaa/saru-pull-request-test.git/'

要約すると...『パスワード認証は August 13, 2021 に使えなくなったから別の認証にしてね』とのことです。

SSH で接続する手順(省略)

SSH を使って GitHub に接続していきます。
以下を参考にして接続がうまくいったらこの記事は読み飛ばして構いません。

接続の具体的な手順は以下のサイトが参考になります。
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita

GitHub の接続とは直接的には関係ありませんが参考になるかと思います。
Mac から さくら VPS の Debian に SSH 接続をする手順 - Tech Potage

詰まった箇所の原因と対処(.git/config の URL 設定を見直し)

結論から言うと、.git/config の URL が https のものになっていたことが原因です。
こちらの記事を参照した前提で話を進めて行きます。

GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita

事象(詰まった箇所)

上記の Qiita を参考に SSH を設定、いざ接続!以下のコマンドを試す。

$ ssh -T git@github.com

しかし、「ユーザ名とパスワードを求められる」 → 「最初と変わらない」 → 「ssh 接続がうまくいってない...」

原因と対処

.git/config の以下の部分を修正後のように書き換えてください(パスは各自のリポジトリを参照)。
私の場合 git remote add origin url において、ssh ではなく htttps をしていたため、修正前のようになっていました。 これだと、https で接続しようとしてしまいます。


修正前

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/conpotaaa/saru-pull-request-test.git #ここだよ
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
    remote = origin
    merge = refs/heads/main

修正後

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = github:conpotaaa/saru-pull-request-test.git #ここだよ
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
    remote = origin
    merge = refs/heads/main

ssh のパスを取得してくるには GitHub プロジェクトページの以下の部分からコピーできます。



.git/config[remote "origin"]url 部分だけピンポイントで確認するコマンドです。
これで httpsssh かがすぐわかります。

$ git config remote.origin.url

また、以下のコマンドで .git/config[remote "origin"]urlssh に書き換わります。

$ git remote set-url origin git@github.com:[ユーザID]/[リポジトリ].git

これのほうが楽では...

~/.gitconfig を以下のようにしたほうが簡単だが、設定ファイルをいじれて勉強になったので良し!
ちなみにこれは SSH 接続に切り替える設定です。global 設定なので、local の設定より優先されます。

[url "github:"]
    InsteadOf = https://github.com/
    InsteadOf = git@github.com:

Weekly report 2022-11-14 ~ 2022-11-20 Git 修了 Ruby 開始

※ Obsidian という Markdown エディタを使っていまして、[[]] で囲ってあるものはその機能です。Obsidian からコピペしたものをそのまま貼り付けています。Obsidian 上でリンクとして別ページ飛ぶことができます。

Git 修了 Ruby 開始

1 週間の感想

Git のプラクティスが終わって本格的にプログラミング言語のプラクティスに入れたことが何より嬉しい。
最近は学習にメリハリがついて来ている。後半にポモドーロを導入してみたが、頭が冴えるようになった。短い時間で集中しなくてはいけないので調べ物をしていて脱線が少なくなるのはいいこと。

目次

今週の目標

  • Git系 のプラクティスの修了
  • Ruby初級 | FBC までの修了
  • これまでの学習のインデックスを分野ごとに作る
    • つまりはやったこと、読んだ本、参考になったページなどを復習をしやすいように Obisidian にまとめる
    • 一度整理をしないとパンクしそう

今週やった FBC のプラクティス

ラクティス進行状況

目標 成果 課題
Git の基本を理解する 修了
GitHub の基本を理解する 修了 提出
Pull Request を行う 修了
rbenv 修了
Ruby初級 進行中

週報

2022-11-14 プルリクを初体験、ブログ更新

やったこと

  • サル先生の Git にてプルリクを体験。
  • ssh の設定に関してのブログを書いた。

感想

プルリクを体験した。かなり便利。これ(GitHub)がなかった時代はレビュー依頼も無視されたりがあったんだろうか。便利な時代に学習できることに感謝。
git clonegit remote add はリモートから引っ張ってくるか、ローカルにすでにあるものをあげるかの違い。自分でリポジトリを作ったときはどっちでも問題なさそう。
ssh の設定に関してのブログにまとめた。設定周りは一度やってしまうとしばらくやらないことが多いのと、各々の環境ごとによって挙動が異なったりするのでしっかりまとめていこうと思う。

2022-11-15 pure、Git-it

やったこと

  • pure の設定(プロンプトの見た目を変える)
    • brew でインストール
  • Git-it を始める
    • リリースは Darwin を選択
      • Mac の元になった OS のことらしい

感想

pure のインストール。GitHub の README を読んでインストール。だいたいググれば日本語で解説してくれたサイトが出てくるが、英語への忌避感を払拭するためと、一次情報に触るということを意識していくためにこれからもまずはこのスタイルを用いていく。
Git-it はまだ序盤だが、かなり好感触。ディレクトリを参照して、正解していないと先のレッスンへ進めないので、Git の基礎をしっかり身につけることができそう。

2022-11-16 Git-it 続、プルリクの仕様を知る

やったこと

  • Tig をインストール
  • Git-it の続き

感想

Git-it、フォーク元にプルリクを送れないやん。となる。
一生懸命にフォーク元に git push していたが、フォークしてきたリポジトリgit push するだけでフォーク元にもプルリクが作成される!
フォーク元のリモートリポジトリには upstream と付けるのが慣習。
Tig はとりあえずインストールのみ。のちのち触っていく。

2022-11-17 https で繋がらないッッッッッ

やったこと

感想

GitHub 課題では pull -rebase に苦戦。『余計なコミットを作らないために事前にローカルで操作してから、push する』ということを認識できていれば、あとは操作を覚えるだけ。
プルリクのプラクティスにて https が推奨されていたので、ssh から変更。 なんとか https で接続できたのですが、URL に直接アクセストークンを記載する力技なので、接続時にアクセストークンが求められない...これではセキュリティもクソもない...パンクしそうだったので質問することに。

2022-11-18 整理の日

やったこと

  • ブログの週報更新
  • いままでのプラクティスの整理

感想

ブログの更新を兼ねて、いままでのプラクティスの整理をした。けっこう忘れていることが多く焦る...。また必要になったときに再度学習するスタイル(基礎と応用の行き来)が良いことは皆が一様に言っていることなので、あまり気にせずに前進したい。 ただ、頭の中にインデックスはしっかりと残して置きたいので、基礎を体系的にまとめた書籍は何冊か継続して復習がてら読んでいく。

2022-11-19 質問の解消と rbenv

やったこと

  • Github https 認証に関する質問の解消
  • rbenv の設定

感想

http の設定は ~/.gitconfig の設定を見落としていた。
これに関しては、Githubssh の設定とともに記事にする予定。
rbenv の設定
こちらも少し苦戦。環境構築するだけだと、ググって出てきたサイトの解説を特に何も考えず実行すればいいことが多いが、しっかり理解した上で構築するには Linux やネットワーク、サーバーの知識がもっとあればなぁということが多い。フルスタックになりたい。

2022-11-20 もくもく会Ruby 開始!

やったこと

  • シェアハウスのもくもく会に参加
  • ゼロからわかる Ruby 超入門 を読み始める
    • 3 章まで

感想

やっと本格的にプログラミング言語のプラクティスに入ることができた。進捗は悪いながらも少しずつ前に進めている感覚はあるので、このまま続けていきたい。 1 年前の自分にここまでやれたことを伝えたい気持ちでいっぱいだ。
Ruby 超入門はアドバイザーの五十嵐さんの動画を合わせるとかなりわかりやすい。
変数はよく『箱に代入する』というイメージで語られてることが多いが、『オブジェクトに名札を貼る』というイメージはわかりやすい!

来週の目標

Weekly report 2022-11-07 ~ 2022-11-13 SSH と格闘

※ Obsidian という Markdown エディタを使っていまして、[[]] で囲ってあるものはその機能です。Obsidian からコピペしたものをそのまま貼り付けています。Obsidian 上でリンクとして別ページ飛ぶことができます。

SSH と格闘

1 週間の感想

また GitHub にてまたもや ssh と対面。それなりに ssh には慣れてきた。Git に関しては裏で起こっていることを認識できているかいないかで解像度にだいぶ差が出そう。
プログラミング言語(Ruby)にやっと触れたのが嬉しい。来週もまだ Git のプラクティスは続くと思うが、早く終わらせて取り掛かりたい。
初めてのシェアハウスで初めてのもくもく会をやった。共同作業という訳ではないが、課題を公表するだけでこんなにも作業が捗るのかと衝撃。これからも参加していきたい。

目次

今週の目標

  • ブログ記事の執筆
    • 下書きのみ。更新はできず。
  • Git系 のプラクティスの修了
    • Git の最初のプラクティスに阻まれる。
  • Ruby初級 | FBC までの修了

今週やった FBC のプラクティス

ラクティス進行状況

目標 成果 課題
標準入出力・リダイレクション・パイプを理解する 修了
SSL/TLS の基本を理解する 修了
Git の基本を理解する 進行中
Ruby初級 進行中

週報

2022-11-07 体調不良

やったこと

標準入力・標準出力ってなに? - Qiita
難しいが本質をついた説明をしてくれている

感想

  • どのページも新しい Linux の教科書を読んでいたおかげでそこまで理解に苦しまずに済んだ。
  • 基本的に 1 日中体調がよろしくなくぐったりしていた。

2022-11-08 (先週の)週報をブログに書いた

やったこと

感想

  • 週報ブログを書き始めた日。
  • シェアハウスでもくもく会を日曜にやることになった。初めての体験でワクワク。
  • SSL が難しい。図解がないと理解できる気がしないし、言語化もまだできない。

2022-11-09 Git な 1 日

やったこと

感想

  • 後半に触ったコマンド群はなかなかヘビーだった。
    • どういった動きをしているのかよくわからないものも多い。
  • 実際の開発で使う場面が出てきて初めて身につくと割り切って学習した。

2022-11-10 プルリクと再び ssh(GitHub)

やったこと

感想

  • ssh 接続の練習になって非常によかった。
  • たいてい問題が解決しないときは設定ファイルをいじればいいのだなと。
  • 今日の内容はブログにまとめる予定です。

2022-11-11 さくら vps ssh 再設定

やったこと

  • 昨日の ssh の続き
    • 主にブログ用の記事まとめ
  • GitHub でダミーのメールアドレスを使用する - Qiita
    • これを設定した。結構重要かもしれない。
  • さくら vps ssh 再設定
    • GitHubssh 接続を試していて、忘れているな...と感じ学習のためもう一度再設定。
    • ssh-copy-id を再度するために、ポートをデフォルトの 22 番に戻した(サーバー側の /etc/ssh/sshd_config で変更できる。変更後、再読み込み必須。)。

感想

  • さくら vpsssh を再設定していて感じたことだが、一度設定してある程度理解しているとエラーにもなんとか対処できるようになっている...気がする。
  • ブログ記事を書くのは大変だけどアウトプットは自分にとっても誰かにとっても重要だと思うので続けていきたい。
    • 検索汚染にならないよう洗練していくのはもちろん...。

2022-11-12 アメナマ釣り大会

やったこと

  • シェアハウスの住人と茸本朗氏主催の霞ヶ浦アメナマ釣り大会に参加。

感想

  • いいリフレッシュになった。
  • 一緒に行った住人の一人がボウズにならずに済んで一安心(2 回連続で坊主だったので)。
  • アメナマラーメンは攻めた味でびっくり。

2022-11-13 人生初のもくもく会

やったこと

  • シェアハウスにて人生初のもくもく会
  • 3 時間で 『スラスラ読める Rubyふりがなプログラミング』という本をチャプター 3 まで読む。

感想

  • もくもく会、みんなで集まって各々好きなことをやっているだけなのにかなり捗って驚き。
  • いつか自分でも主催してみようと思うほど。
  • Rust や アーキテクト等の技術的な話題には全然ついていけないのが非常にもどかしかった。
  • Ruby に関してはオブジェクトとメソッドをしっかり分けて考えることが重要だと認識。
    • まだよくわかってない(そんなすぐにわかるはずもない)。

来週の目標

  • Git系 のプラクティスの修了
  • Ruby初級 | FBC までの修了
  • これまでの学習のインデックスを分野ごとに作る
    • つまりはやったこと、読んだ本、参考になったページなどを復習をしやすいように Obisidian にまとめる
    • 一度整理をしないとパンクしそう

Mac から さくら VPS の Debian に SSH 接続をする手順

Mac から さくら VPSDebianSSH 接続をする手順

フィヨルドブートキャンプのプラクティスにて さくら VPSDebianMac から ssh 接続する課題についてのまとめ記事です。
サーバー側とクライアント側の操作をしっかり把握しないとすぐにこんがらがるのでまとめました。

目次

環境

  • MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
  • クライアント
    • macOS Catalina バージョン 10.15.7
  • サーバー

サーバー(Debian)とクライアント(Mac)にssh をインストールする

以下を前提として解説しています。
どちらの作業か判別しやすいようにサーバー側、クライアント側と見出しをつけました。
- クライアント = 自身の Macbook
- サーバー = さくら VPSDebian = さくら VPSDebian


Debian 側での ssh インストール (/etc/ssh/)

サーバー側

以下で OpenSSH をインストールできます。
クライアント側の Mac はデフォルトでインストール済ですのでインストール不要です。

$ sudo apt update
$ sudo apt install ssh

インストールすると /etc/ssh/ 下に設定ファイル群ができます。
- /etc/ssh/ssh_config
- ssh で接続する設定(クライアント)
- /etc/ssh/sshd_config
- shh で接続されるときの設定(サーバー)


Debian 側の ssh の設定 (/etc/ssh/sshd_config) を以下の通り変更する

サーバー側

パスワード認証ログインを禁止にする

/etc/ssh/sshd_config 内の #PasswordAuthentication yesPasswordAuthentication no に変更する。
コメントアウトを外すのを忘れないように。

rootでのログインを禁止にする

/etc/ssh/sshd_config 内の #PermitRootLogin prohibit-passwordPermitRootLogin no に変更する。

22番ポートでログインできないようにする

Port 22 を数字をウェルノウンポートに被らないように任意の数字を変更する。
とりあえず Port 085 に変更しました。

SSHのポート番号を変更 - SSHサーバーの設定 - Linux入門 - Webkaru

【初心者用】ウェルノウンポートの意味とよく使われるポート番号一覧 - Qiita
ウェルノウンポートの解説


参考サイト

Mac OS X から Linuxサーバ へ、RSA 鍵を用いて SSH 接続する - J
パーミッションの変更も解説


さくら VPSMac からログインできるようにする

Mac秘密鍵と公開鍵を作成する(ssh-keygen)

今回はクライアント側から作成します。

クライアント側

前述の通り、Mac にはデフォルトで openSSH はインストール済です。

ssh-keygen秘密鍵と公開鍵を作成(~/.ssh/)

指定しない限り、『秘密鍵ファイル id_ed25519』 と『公開鍵ファイル id_ed25519.pub』 が ~/.ssh/ ディレクトリ下に作成されます。
-t は鍵タイプ指定 ed25519 が推奨 (rsa より強固) です。
-b はバイト数の指定、最低は 1024 バイト、大きいほど強固になります → (特に設定しなくてもいい)
-f で鍵のファイル名を指定可能です。
-C でコメントを指定可能です。 パスフレーズは必要有りません。

SSH秘密鍵のパスフレーズは(つけるなら)11文字以上にしましょうねという話 - 本当は怖いHPC

ssh-keygenコマンドの-Cオプションで入力する内容について · すっさんぽ

以下、ed25519 を指定して作成します。

$ ssh-keygen -t ed25519 -b 2048
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/hrk/.ssh/id_ed25519):
# 鍵が格納されるファイル名を指定
# 指定しないと上記の括弧内のファイル名になる
Created directory '/Users/hrk/.ssh'.
Enter passphrase (empty for no passphrase):
# (任意の)パスフレーズを入力
# なしでもいい
Enter same passphrase again:
Your identification has been saved in /Users/hrk/.ssh/id_ed25519.
Your public key has been saved in /Users/hrk/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:oUJM+d0buTUDscRON1hltiFSrkL2MoQ65TYIugwcEaE hrk@HKM.local
The key's randomart image is:
+--[ED25519 256]--+
| +o ..   .+=+.=  |
|. .o.  . .=+o+ o |
|E.. o.o.=+.+...  |
|...o =.=.o=.+    |
|o.  = = S o= o   |
|o.   + . +o      |
|..               |
|                 |
|                 |
+----[SHA256]-----+

作成されました。

~/.ssh/$ ls
id_ed25519      id_ed25519.pub  known_hosts

Mac秘密鍵を登録(ssh-add)(パスフレーズを登録した場合)

クライアント側

パスフレーズを登録していないなら飛ばしてください。
下記を実行します。

$ ssh-add -K ~/.ssh/id_ed25519

ssh-agentを使って公開鍵認証方式のsshパスワード入力を省略する方法 | server-memo.net
パスフレーズが省略可能

ssh-add(1) manページ
認証エージェントに秘密鍵を追加する

ssh公開鍵認証設定まとめ - Qiita
-K オプションは Mac 限定

ssh接続を鍵認証で行う
流れが記載、-K オプションのことも載っている


Mac から公開鍵を Debian に送って登録(ssh-copy-id)

クライアント側

下記を実行します。
yes, no を聞かれるので yes を選択すると、サーバー側に ~/.ssh/authorized_keys という名前に変更された『公開鍵 id_ed25519.pub』 が送られます。

$ ssh-copy-id -i ~/.ssh/id_ed25519.pub サーバーのユーザー名@さくらサーバーのアドレス
...
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
...

SSH-COPY-ID(1) - 汎用コマンド - YOS OPENSONAR
リモートホストに公開鍵をコピーする

コマンド1発!ssh-copy-id でSSH公開鍵を登録 | あぱーブログ
-i オプションはSSH公開鍵の指定


Mac から DebianSSHを使ってログインする(systemctl restart sshssh -p ポート番号 サーバーのuser名@サーバーのアドレス)

サーバー側

サーバー側で今まで変更した設定を反映させる為にsshを再起動させます。

$ sudo sshd restart

が、使えなかったので、こちらを使用しました。

$ sudo systemctl restart sshd

以下を使用したほうが良いそうです。
restart だと設定ファイルに syntax error があったときに、既存のプロセスを停止させてしまうため。
reload は文法チェックが含まれているからエラーがあると再起動をストップしてくれます。

$ sudo systemctl reload sshd

これで接続の準備が完了です。

SSH サーバー (sshd) の起動・停止・再起動方法まとめ|まくろぐ
systemctl はここを参考に

【初心者向け】SSHのインストールと設定方法
ここも参考

【Linux】systemdとsystemctlコマンド:サービスの自動起動、停止、再起動 | OFFICE54
systemctl の解説

クライアント側

以下でパスワードを求められずログインできたらOK!

$ ssh -p ポート番号 サーバーのuser名@サーバーのアドレス

ネットワークをまだ本格的に学習していないので、認証方式自体の理解に時間がかかりました。
ネットワークの学習をしたあとにまた整理してみるつもりです。

Weekly report 2022-10-31 ~ 2022-11-06 週報を開始

※ Obsidian という Markdown エディタを使っていまして、[[]] で囲ってあるものはその機能です。Obsidian からコピペしたものをそのまま貼り付けています。Obsidian 上でリンクとして別ページ飛ぶことができます。

週報を開始

日報はつけていますが週で管理したほうが振り返りもできて記憶にも残りやすいので週報を開始。
トミーさんのブログを参考にしました。Eat, Play, Nap and Code

1 週間の感想

自分を晒すことで、より良い方向に進むことを理解した 1 週間でした。特にシェアハウス進捗スレッドは効果覿面。ともに生活している方の応援や監視があると頑張ろうと気合が入ります。
今までは自分だけの力で何とかしようと躍起になって、挫折するたびに『なんて自分は弱いんだ』と落ち込んでいました。これからは自分の弱さに向き合いながら、皆の力を頼って頑張っていこうと思います。 その過程で独力で努力できる力を身につけることが目標です。

目次

今週やった FBC のプラクティス

目標と成果

目標 成果 課題
UNIXLinux について知る 修了
Linux のファイル操作の基本を理解する 修了
apt の基本を理解する 修了
sudoをインストールする 修了
ssh の基本を理解する 修了 提出済
標準入出力・リダイレクション・パイプを理解する 進行中

週報

2022-10-31 これからの話

やったこと

  • 昨日のシェアハウス内でのアドバイスを元にとりあえず求人に応募した。

感想

  • 自身の性格的に『何かが終わってから』、『これをやってから』という転職のスタンスだと先延ばしにしてしまうため、この判断は間違っていなかったと思える。
  • 実際に応募することで身が引き締まった。
  • 現状の能力では厳しいことに多く出くわすだろうが、経験を積んで、時には厳しい言葉も頂いて成長していきたい。

2022-11-01 新しい一歩

やったこと

  • TickTick でデイリールーティンを管理し始めた。
  • シェアハウスのディスコードスレで個人進捗スレを作成。
  • G テスト を受けてみた
  • 新しい Linux の教科書
    • ファイルパーミッション
      • 次回、以降のプラクティスで sudo のインストールがあるので読み込む
    • プロセスとジョブ
      • オプションについての理解がまだ曖昧
    • 標準入出力とパイプライン
      • Linux の本領?といった内容
      • これで色々できることが増えそう

感想

  • 個人進捗スレはやったかやってないかが明確にわかるので良き。性格的にやはり監視してもらうのが一番。
  • G テストは 【空間: 140, 言語: 140, 数理: 115】
    • 数理力が低い、これからの学習を通じて向上させていく
  • Linux 学習はここにきてだんだんと難しくなってきた。使いこなすためには重要な箇所なのでしっかり理解していく。

2022-11-02 とほほ

やったこと

感想

  • とほほ氏のサイトは歴史から基本的なコマンドまで記載されているので速習に便利。
  • テキスト処理や正規表現は軽く読み流し。こんなものがあるんだと知っておく程度に抑える。
  • Unix のプラクティスはほどほどに早く言語に入りたい気持ちがある。

2022-11-03 apt に苦戦の 1 日

やったこと

感想

  • 少ない時間を割いて頂いて開発会社の社長さんとお話できたのは幸運だった。とりあえずの方針が定まった。自分が年齢的にも、学習の進度的にも遅れていることを再確認。
  • パッケージ管理は apt ですることに。Debian の推奨が今は apt。今まで Mac ではかっこいいからという理由でずっと Homebrew を使用していたが、とても便利なシステムだということがわかった。
  • 設定ファイルの書式が難しい。Linux は全てファイルで管理されているということがよく分かる内容だった。

2022-11-04 sudo の設定と ssh

やったこと

  • sudo を使うための設定
    • /etc/sudoers をいじる
    • visudo のエディタを vim に変更
  • ssh を使う
    • ssh のインストール
    • パスワードログインの禁止
    • rootログイン禁止
    • 22番ポート以外に設定

感想

  • sudo は adduser でユーザーを管理者グループに入れるだけでは駄目だった。しっかり設定ファイルをいじる必要がある。
  • visudo なんで nano で起動するんだ?!vi の頭文字の意味は?!
  • ssh はそれ自体の仕組みもさることながら、設定自体も骨が折れる。サーバー側、クライアント側を常に意識していないといけない。

2022-11-05 ssh が通った!

やったこと

  • sshを使う 続
    • 秘密鍵、共有鍵のインストール
    • 秘密鍵をクライアントに登録
    • 公開鍵をサーバーに登録
    • ssh ログイン
  • ファイル・ディレクトリについての Doc を読む

感想

  • 昨日も言ったが自分が今やっている工程がクライアント、サーバーどちらの内容かしっかり理解する必要がある。
  • Mac 特有のオプションがあったりとオプションに振り回された。
  • 最後の最後、サーバー側で今まで変更した設定を反映させるための再起動をクライアント側でやっていた...どうりでパスが見つからないはずだ。
  • シェアハウスのインフラエンジニアのアドバイスのおかげで ssh 周りは順調に進んだ。

2022-11-06 雑務

やったこと

  • 日報まとめ。

感想

  • 慣れないことをした 1 日だったのでどっと疲れた。
  • 色々と雑務をこなす。

来週の目標