SSHキヌなしでOpenPubkeyを䜿甚しおSSHを行う方法

投皿日 Jan 18, 2024

この蚘事は BastionZero の寄皿によるものです。

SSHキヌを気にせずにSSHできるずしたらどうでしょうか? SSHキヌの玛倱、盗難、共有、ロヌテヌション、忘れを心配する必芁はありたせんか? この蚘事では、メヌルアカりントたたはシングルサむンオン(SSO)だけでリモヌトDockerセットアップにSSH接続する方法に぀いお説明したす。 OpenPubkey SSH の蚭定方法に぀いおは 、こちらのドキュメントをご芧ください。

banner OpenPubkeyを䜿甚しおSSHキヌを䜿わずにSSHする方法 2400x1260px

SSH の䜕が問題になっおいたすか?

私たちは SSH が倧奜きで、い぀も䜿っおいたすが、䜕幎にもわたっお蓄積したキヌの数を数えるために立ち止たるこずはあたりありたせん。 これを曞いおいる時点で、私は8぀持っおいたす。 5぀が䜕のためにあるのかは蚀えるが、少なくずも2぀持぀べきではないし、少なくずももう1぀倱った堎合の玠早い発射は間違いない。 「is_key.pem」ずはいったい䜕なのでしょうか? 党然わからんし、い぀䜜ったかもわからなかったみたいです。

SSHキヌが実際に無害なこずはめったにありたせんが、リモヌトDockerセットアップぞのアクセスやデバッグにのみ䜿甚しおいる堎合でも、そのキヌはめったにありたせん。 テスト環境は 頻繁にクリプト ゞャックや プロキシゞャック され、むンタヌネット党䜓がSSHハッキング専甚になっおいたす。 

最埌にパッチを適甚し sshdたのはい぀ですか? このツヌルはナビキタスですが、めったに曎新されないため、これらの脅嚁はすぐには消えたせん。 鍵の管理は 煩わしい 䜜業であり、劥協に぀ながるこずは避けられず、単玔なミスが恐ろしい結果に぀ながる可胜性がありたす。 GitHubでさえ、昚幎、公開リポゞトリで SSH秘密鍵を公開し たした。 

では、どうすればいいのでしょうか? どうすれば改善できたすか? そしお、それは無料ですか? はい、はい、はい。 

珟圚、OpenPubkeyでSSHを䜿甚する新しい方法がありたす。 OpenPubkey SSH(OPK SSH)を䜿甚するず、SSHキヌをゞャグリングする代わりに、通垞のメヌルアカりントたたはSSOを䜿甚しおログむンし、1回限りの迅速なセットアップでSSHサヌバヌに安党に接続できたす。 どのキヌがあなたを解雇するかを掚枬したり、䞍適切な呜名芏則のために過去の自分を呪ったりする必芁はもうありたせん。 キヌはありたせん。

OpenPubkey SSHは、BastionZero、Docker、The Linux Foundationが䞻導するオヌプン゜ヌスプロゞェクトである OpenPubkeyの最初の完党に開発されたナヌスケヌスです。 機胜を匷化し、進化するナヌザヌのニヌズずセキュリティの課題に察応するために適応するに぀れお、成長ず改善が続けられたす。 OpenPubkeyずは䜕か、そしおそれがどのように機胜するかを孊ぶために読んでください。

OpenPubkey SSH を䜿い始める 

珟圚、OPK SSH は Google 経由のログむンのみをサポヌトしおいたす。 ご垌望のプロバむダヌが決たっおいる堎合は、 GitHub にアクセスする か、以䞋の「 参加する」 セクションで詳现をご確認ください。

OpenPubkey SSH は、BastionZero のれロトラストコマンドラむンナヌティリティ zliである . のむンストヌル zli 手順に぀いおは 、BastionZeroのドキュメントを参照しおください。

をむンストヌルし zliたら、次のこずを行う必芁がありたす。

  1. SSH サヌバヌを構成する (<1 分)
  2. Google でログむン (<1 分)
  3. 構成をテストする
  4. Docker リモヌト アクセスに OPK SSH を䜿甚する
  5. ナヌザヌを管理する

SSH サヌバヌを構成する

最初のステップは、SSHサヌバヌを構成するこずです。 初めおのセットアップでは、Googleアカりントず、セットアップしようずしおいるSSHサヌバヌぞの少なくずもsudoerアクセスがあるこずを前提ずしおいたす。

zli configure opk &lt;your Google email> &lt;user>@&lt;hostname>

Googleでログむン

次に、ログむンする必芁がありたす。 これにより、ブラりザりィンドりが開き、Googleで認蚌できるようになりたす。

zli login --opk

構成をテストする

これで、OPK を䜿甚しお SSH を䜿甚できるようになりたした。 すべおが正しく構成され、アクセスが OPK SSH 経由で機胜しおいるこずをテストするには、次のコマンドを実行したす。

ssh -F /dev/null -o IdentityFile=~/.ssh/id_ecdsa -o IdentitiesOnly=yes user@server_ip

蚌明曞をデフォルトの堎所に保存するため、SSH は垞にそれを䜿甚しお認蚌したす。 そのため、既存のSSHキヌを削陀した埌にを指定する IdentityFile 必芁はありたせん。

Docker リモヌト アクセスに OPK SSH を䜿甚する

すでにDockerでSSHを䜿甚しおいる堎合は、準備が敎っおおり、他に䜕もするこずなく、既存のリモヌトDockerセットアップを維持できたす。 それ以倖の堎合は、次のいずれかの操䜜を行っお、ロヌカルの Docker クラむアントがリモヌトの Docker むンスタンスに接続するように蚭定できたす。

# Set an environment variable
$ export DOCKER_HOST=ssh://user@server-ip

# Or, create a new context
$ docker context create ssh-box --docker "host=ssh://user@server-ip"

その埌、通垞どおりDockerを䜿甚でき、内郚でSSHを䜿甚しおリモヌトDockerむンスタンスに接続したす。

ナヌザヌを管理する

1 人のナヌザヌ甚に蚭定したので、次は耇数のナヌザヌ甚に構成する方法に぀いお説明したしょう。 OPK SSH では、ナヌザヌにアクセス暩を付䞎するためにナヌザヌず調敎する必芁がありたせん。 サヌバヌぞのアクセスを蚱可するナヌザヌの遞択は、次のような読みやすい YAML ポリシヌ ファむルで指定したす。

$ cat policy.yaml
users:
    - email: alice@acme.co
      principals:
        - root
        - luffy
    - email: bob@co.acme
      principals:
        - luffy

principalsこれは、SSH が蚱可されおいるナヌザヌの SSH スピヌクであるこずに泚意しおください。

単独たたは少人数のグルヌプで飛行する堎合は、このファむルを盎接凊理する必芁はないでしょう。私たちの zli configuration コマンドがあなたのためにこれを凊理したす。 ただし、倧芏暡なグルヌプでは、これが倧芏暡にどのように機胜するかに関心がある可胜性があり、その答えがありたす。 OPK SSH がお客様のニヌズにどのように適合するかに぀いおは、 BastionZero たでお問い合わせください。 プロセス䞭の問題やトラブルシュヌティングに関する質問に぀いおは、 ガむドをご芧ください。

仕組み

Dockerでは、環境倉数たたはコンテキストの䞀郚ずしお別のホストを指定するこずで、SSHを䜿甚しおリモヌトコンテナでDockerコマンドを実行できたす。

# Set an environment variable
$ export DOCKER_HOST=ssh://user@server-ip

# Or, create a new context
$ docker context create ssh-box --docker "host=ssh://user@server-ip"

OPK SSH の堎合は、䜕も倉曎する必芁はありたせん。 Dockerは、事前に構成されたSSHを内郚で䜿甚しおいたす。 OpenPubkeyは、より安党でありながら、DockerやSSHに䟝存するその他のアクセスナヌスケヌスず完党に互換性のある別の構成です(図1)。

 Docker クラむアント、SSH クラむアント、SSO、Docker ホスト、OPK 怜蚌ツヌルの抂芁を瀺す図。
図1:OpenPubkey SSHを䜿甚したコンテナぞのアクセス

OpenPubkeyは、SSHがすでに蚭蚈されおいる方法ずうたくスラむドしたす。 私たちは、よく䜿甚され、広く展開されおいる統合メカニズムのみを䜿甚しおいたす。 たず、SSH キヌの代わりに SSH 蚌明曞を䜿甚し、次に を䜿甚しお AuthorizedKeysCommand OpenPubkey 怜蚌プログラムを呌び出したす。これはすべお私たちの zli configure コマンドによっおあなたのために䞖話をされたす。

$ cat /etc/ssh/sshd_config
...
AuthorizedKeysCommand /etc/opk/opk-ssh verify %u %k %t
AuthorizedKeysCommandUser root
...

SSH 蚌明曞を䜿甚するず、キヌが䞍芁になりたす。 x509 などの埓来の蚌明曞゚コシステムのように䜿甚する代わりに、サヌバヌ䞊で怜蚌できる特別なトヌクンで埋め蟌むこずが目暙です。 そこで、の AuthorizedKeysCommand 出番です。 

を䜿甚するず AuthorizedKeysCommand 、ナヌザヌは、ファむル内の authorized_keys 事前構成された公開キヌず比范するのではなく、プログラムによっおアクセスを評䟡できたす。 OPK 怜蚌ツヌルを䜿甚するように構成 sshd するず、今埌付䞎するすべおの OPK 生成 SSH 蚌明曞ぞのアクセスを蚱可たたは拒吊できたす。

OpenPubkeyずは䜕ですか?

OpenPubkeyはSSHだけではありたせん。それだけではありたせん。 Dockerは Docker公匏むメヌゞの眲名 に䜿甚し、BastionZeroはれロトラストむンフラストラクチャアクセスに䜿甚しおいたす。 OpenPubkeyは、Linux Foundation、BastionZero、Dockerの共同 の取り組み です。 これは、OpenID Connect(OIDC)䞊に構築されたオヌプン゜ヌスプロゞェクトであり、叀い機胜に圱響を䞎えるこずなく新しい機胜を远加したす。 

OIDCは、個人(たたは仕事甚)の電子メヌルアカりントを䜿甚しおWebサむトたたはアプリケヌションにログむンできるようにするプロトコルです。 ログむンするず、実際には、特定のアプリケヌション専甚の ID トヌクン (ID トヌクン) が生成され、自分が自分であるこずが蚌明されたす。 たた、䟿利な個人情報も含たれおおり、基本的には、そのアプリケヌションに芁求の蚱可を䞎えたものです。 

基本的に、OpenPubkeyは䞀時的な公開鍵をIDトヌクンに远加しお、メッセヌゞに眲名できるようにしたす。 Google、Microsoft、Oktaなどの信頌できるIDプロバむダヌによっお蚌明されおいるため、い぀でもどこでも誰でも怜蚌できたす。

しかし、OpenPubkeyは、IDトヌクンに公開鍵を远加するだけではありたせん。たた、それをどのように䜿甚するかに぀いおも同様です。 バニラ OIDC の問題の 1 ぀は、そのトヌクンを尊重するアプリケヌションが、あなたがあなたであるず想定するこずです。 OpenPubkeyでは、公開トヌクンを提瀺するだけでなく、1回限りの眲名付きメッセヌゞを提瀺するこずで、あなたが誰であるかを蚌明するこずができたす。 したがっお、あなたになりすたす唯䞀の方法は、あなたの公開トヌクン ず あなたのマシンを離れるこずのない秘密を盗むこずです。  

参加するには

参加する方法はたくさんありたす。 私たちは、情熱的で熱心なコミュニティを構築しおいたす。 私たちは、アヌキテクトが奜きな人のための高いレベルのものず、異なる皮類のアヌキテクトになりたい人のための楜しくお骚倪な技術的なレベルの䞡方で物事を議論したす。 たむろしに来おください。皆様のご支揎に感謝いたしたす。

参加をご垌望の方は、 OpenPubkey リポゞトリをご芧ください。 たた、SSH キヌを䜿甚せずに OPK SSH to SSH を詊す準備ができおいる堎合は、ドキュメントの包括的なガむドを参照しおください。

さらに詳しく

関連蚘事