docker-machine lsが使用出来なくなった時の対処方法

はじめに

docker-machine lsが使用できなくなったので備忘録として対処方法を書く

対応

原因を調べてみるとどうやらユーザー環境変数が消えてしまったのが原因らしい。

同じ現象が起きている方の対応を参考にして無事使用することができた。

○以下対応

・対応前

$ docker-machine ls

-bash: docker-machine: command not found

・Install Docker Machineに記載されている下記コマンドを実行してDocker MachineバイナリをダウンロードしてPATHに抽出する。

$ base=https://github.com/docker/machine/releases/download/v0.16.0 &&

>   curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine &&

>   chmod +x /usr/local/bin/docker-machine

※上記コマンドはmac os用のコマンドなので注意

・再度docker-machineコマンドを使用

$ docker-machine ls

NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

まとめ

なぜユーザー環境変数が消えてしまったかは不明だが、考えられる原因としてはソフトウェアのアップデートを実施したくらいなので多分これが原因っぽい

参考にさせていただいたサイト

docker-machine: command not found - Qiita

Install Docker Machine | Docker Documentation

Basic認証とは?

はじめに

Basic認証について聞いたり使用したり(curlコマンドで)していたけど、説明しろと言われたら説明できなさそうだなぁ〜とふと思ったので書いてみる。

Bsic認証とは?

Basic認証とは「HTTPで定義される認証方式の一つで、基本認証とも呼ばれるものユーザー名とパスワードによる認証方式」のこと。

ユーザー名とパスワードはAuthorizationヘッダでリクエストごとに送信される

メリット

簡易的なシステムで多くのサーバーやブラウザに対応しているため、開発者やユーザーの環境を問わずに利用出来る。

デメリット

Base64」でユーザー名とパスワードの組みを「:」で繋いでエンコードしているが、ログイン情報を持ちながら通信を行うためSSL暗号化をしていないサイトだと盗聴リスクが高まる。

また、ファイルやディレクトリ(ファイルの階層)単位でしか制御できないため、複数のサーバーを使ったサイトなどでは一貫したログインは出来ない。

Base64について

詳細について深くは記載しないが、簡単に書くと64文字で表すエンコード方式のこと。

なぜ盗聴リスクが高まるのかというと、簡単に元の文字に戻せてしまう(デコード)ため。

ただし、上記にも記載してある通り、SSL暗号化をしていないサイトだと盗聴リスクが高まるという話なので暗号化を用いれば、完璧ではないにしろデメリットをほぼカバー出来る。

Digest認証について

Basic認証では防げなかった盗聴や改竄を防ぐために考案されたDigest認証という認証がある。

Basic認証の通信の流れ

  1.  クライアントは認証が必要なページをリクエストする。ユーザー名とパスワードについては、そのページが認証を必要とするかどうか知らないため送っていない。
  2. サーバーは401レスポンスコード(認証エラー)を返し、認証領域(authentication realm)や認証方式(Basic認証)に関する情報をクライアントに伝える。
  3. 2.の知らせを受けたクライアントは、認証領域(アクセスしているコンピューターやシステムの簡単な説明)をユーザーに提示し、ユーザー名とパスワードの入力を求める。ユーザー名とパスワードの入力はキャンセルすることが可能。
  4. ユーザーによりユーザー名とパスワードが入力されると、クライアントはリクエストに認証ヘッダを追加して再度送信する。
  5. 認証に成功した場合、サーバーは認証に必要なページのリクエストを処理し、失敗した(ユーザー名とパスワードが間違っていた)場合、サーバーは再び401レスポンスを返し、クライアントは再びユーザー名とパスワードの入力を求める。

設定方法

 Basic認証の設定に必要なものは「.htaccess」、「.htpasswd」。

.htaccessの記述方法。

  1. AuthType Basic
  2. AuthName "Test"
  3. AuthUserFile /home/test/.htpasswd
  4. require valid-user

.htpasswdの記述方法。

ユーザー名:暗号化したパスワード

Basic認証では複数のアカウントIDも記述できる。暗号化したパスワードについては、無料で暗号化できるサイトがある。

用語説明

AuthType:認証方式を記載するところ。Basic認証を使用する場合はBasicと記述する。

AuthName:認証画面の中で表示されるもの。ブラウザによっては表示されない。

AuthUserFile:ユーザー名とパスワードを書いたファイルの場所(フルパスで)を記述する。

require:認証されたユーザーのアクセスを許可する設定。「valid-user」で全てのユーザーのアクセスを許可し、「user xxxx」で特定のユーザーのみアクセスを許可することが出来る。

参考にさせていただいたサイト

Basic認証 - Wikipedia

簡易的な認証方法、『Basic認証』について知ろう! | セキュリティ対策 | CyberSecurityTIMES