curlコマンドでBasic認証が設定されたサイトにアクセスする方法

目次

スポンサードリンク

curlコマンドの基本構文

curlコマンドはサーバーとの間でデータ転送するためのツールです。用途の似たコマンドに wgetコマンドがありますが、wgetコマンドと比較してcurlコマンドは対応するプロトコルが豊富な点が特徴です。

curlコマンドの基本構文は以下です。コマンドの後にオプション、HTTPやFTPなどのプロトコルで通信するサーバーのURLを入力します。

curl [オプション] [URL]

Basic認証が設定されたサイトにアクセスすると401エラーになる

curlコマンドでBasic認証が設定されたサイトにアクセスすると以下のように401エラー(Unauthorized)になります。

[root@hostname tmp]# curl https://uchy.me/admin/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>

Basic認証のID、パスワードを指定する方法

Basic認証が設定されたサイトにアクセスするためにはBasic認証のIDとパスワードをオプションで指定する必要があります。–userオプションを指定する方法と-Hオプションで直接Authorizationヘッダを指定する方法の二通りあります。

–user オプションで指定する方法

–userオプション(または -u も同様)でIDとパスワードをコロンで区切って指定します。

[root@hostname tmp]#  curl -u admin:passpass https://uchy.me/admin/

-HオプションでAuthorizationヘッダを指定する方法

-Hオプションを使用すると任意のリクエストヘッダーを指定することができます。Basic認証はIDとパスワードをコロンで区切った文字列をbase64エンコードした結果をAuthorizationヘッダで送信することで、認証することも可能です。

[root@hostname tmp]#  curl -H "Authorization:Basic aG9nZWhvZ2U6ZnVnYUApZnVnYQ==” https://uchy.me/admin/

base64エンコードした文字列は下記ツールでも取得することができます。
https://uchy.me/tools/convert_base64.html



Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon