個人勉強用
参考
具体的にどう本物のエンジニアになるかというお話(バックエンドエンジニアのロードマップ付)
SSHとは?【分かりやすい解説シリーズ #65】【プログラミング】
公開鍵認証とは?【分かりやすい解説シリーズ #24】【プログラミング】
【Linux】パスを通すとは?【謎の文言】
Linuxディレクトリ構造を完全解説!
SSH(Secure SHell)
ネットワークを介して、別のコンピュータを遠隔操作するためのツール。
同じようなものにTelnetがあるが、違いは暗号化されるかされないか。SSHは通信データが暗号化される。
どんな時に使うのか
サーバーのセットアップやメンテナンス作業を行う場合。
サーバーを置いたり、復旧したりする作業はSSHを使って自宅のPCからリモートで操作を行う。
どう使うのか
PCに導入されている「SSHクライアント」というソフトを使う。macからターミナルを起動し「ssh」と入力することで使える。
ssh ユーザー名@サーバーアドレス
その後パスワードを入力するとサーバーに入れる。ちなみにSSH接続はサーバー側も対応していないと行うことはできない。
SSHの認証方式(パスワード認証より公開鍵認証)
パスワードでの認証の他に「公開鍵認証」という認証方式もある。これはパスワードを使わず、「公開鍵」と「秘密鍵」という仕組みを使い、より安全に接続を行う方法。
秘密鍵は「電子署名」というデータを作ることが出来る。
公開鍵は「電子署名」というデータを正しいか検証することが出来る。
秘密鍵は自分のパソコンの中に大切に保管しておく。一方、公開鍵はサーバー側に保管しておく。
流れとしては、自分のパソコンの秘密鍵を使い電子署名データを作成し、サーバーに送信する。サーバーでは、その電子署名データを受け取り公開鍵を使って検証してみる。検証に合格すれば認証成功で、リモート接続を許可する。電子署名データはめっちゃ複雑だから盗まれる可能性は低い。しかし、ちゃんと秘密鍵は守らなければならない。
パスを通す
パスを通すとは「新しくコマンドを登録する」ということ。
例えばwhich lsと打てば、lsの場所を教えてくれるが、それはいろんなファイルの中からlsというファイルを探せたから表示できている。これがパス(道のり)が通っているということ。
逆にどこにあるかがわかならないことをパスが通ってないっていう。
教えたいファイルまでのパスを記録
export PATH=$PATH:(パス) これでパスを追加
これがパスが通っている状態
Linuxのディレクトリ構造
/bin OSが正常に動作するための実行ファイル(cpコマンドやらkillコマンドやら)
/boot システムの起動に必要なファイル(自分でいじることはほぼない)
/dev ハードウェア機器を表すファイル(Linuxではハードウェア機器をファイルで表す。その置き場)
/etc 設定ファイル(設定ファイル置き場)
/home ユーザーのホームディレクトリ(最初にいる場所)
/lib OSに必要なライブラリファイル
/media 外部の記憶媒体をマウント(自動)(マウントとはルートディレクトリのどこかに登録すること。登録しないとLinuxは何もできない。外部の記憶媒体はUSBとか)
/mnt 外部の記憶媒体をマウント(手動)
/opt 追加のアプリケーションがインストール(Chromeとか)
/proc OSのシステムをコントロール
/root rootアカウントのホームディレクトリ(ルートユーザーのホームディレクトリ)
/sbin ルートユーザーのみ実行できるプログラム(システムを管理するようなコマンド)
/sys OSの現在の状況に関する情報(システムの全般的な状況に関する情報が入ってる)
/usr 全ユーザーが共通して利用するプログラムのデータ(全ユーザーが共通して利用するプラグラムやライブラリデータが入っている)
/var システム運用中に生成、あとから削除されるデータ(ログファイルとか)