web-dev-qa-db-ja.com

認証局を使用してSSHで一時的にアクセスする方法は?

Aws EC2インスタンスで認証局を使用してSSHで一時的なアクセスを提供しようとしていますが、適切に実行できません。これをどのように達成できるかについてのガイダンスを手伝ってくれませんか?下記のプロセスに従ってください:

Step 1: Generate CA certificate on user's machine (currently doing for testing) : ssh-keygen -f ssh_ca

Step 2: Generate user's ssh keys using (on users machine): ssh-keygen
-f user_ssh_key

Step 3: Generate CA approved public key using user's public key: ssh-keygen -s ssh_ca -I Host_name -h -n Host_name -V +1d user_ssh_key.pub , this gives user_ssh_key-cert.pub (Public key which is signed)

Step 4: Copied ssh_ca.pub (CA pub key) and user_ssh_key ,user_ssh_key-cert.pub (user's pub and private key) on server where i have to do ssh.

Step 5: Do Sudo su, go to file: vim /etc/ssh/sshd_config, Add CA pub key using : TrustedUserCAKeys /etc/ssh/ssh_ca.pub, add Host key using HostCertificate /etc/ssh/user_ssh_key-cert.pub and added private key using : HostKey /etc/ssh/user_ssh_key

Step 6: Do /etc/init.d/sshd restart

Step 7: Open file /etc/ssh/ssh_known_hosts, add @cert-authority * (Content of ssh_ca.pub, without any change)

When i try to do ssh using : ssh Host_name@IP_ADDRESS

Getting this error during ssh which seems to be a issue :

debug1: Found CA key in /etc/ssh/ssh_known_hosts:1

key_cert_check_authority: invalid certificate

Certificate invalid: not a Host certificate

debug1: No matching CA found. Retry with plain key

誰かがこのプロセスのガイドを手伝ってくれませんか、私が理解できない小さな何かがうまくいかなかったようです?

現在、DNS名はありませんが、接続したいIPアドレスは持っていません。

前もって感謝します

3
mitesh sharma

一時的なSSHアクセスを提供するために必要なすべての手順を説明します。

1. SSHユーザーCA鍵ペアを作成します

ssh-keygen -f <key-pair-name> -b 4096これにより、ユーザーの公開鍵とサーバー側で信頼されたCA鍵として配置および設定される公開鍵に署名するために使用される秘密鍵が作成されます。秘密鍵は安全な場所に保管し、強力なパスフレーズで保護する必要があります。

2.サーバーでのSSH信頼CAキーの構成

a。 CA公開鍵を/etc/ssh/ディレクトリにコピーし、次のように、適切な所有権(ユーザーroot、グループroot)と権限(0600、ACLなし)があることを確認します。

-rw------- 1 root root 404 Jan 29 08:05 users_ca.pub

b。 CAの使用を有効にするには、/etc/ssh/sshd_configにエントリを追加します

 # Allow access from signed keys
 TrustedUserCAKeys /etc/ssh/users_ca.pub

c。 SSHの構成を検証し、エラーが表示されない場合は、デーモンを再起動します

Sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config
Sudo service ssh reload

3.ユーザーの鍵に署名する

a。ユーザーの公開鍵への署名に使用されるCA秘密鍵を取得します

b。ユーザーの公開鍵を取得する

c。公開鍵に署名します。

ssh-keygen -s users_ca -I awesomeuser -n serveruser -V +1d userkey.pub

上記で使用されているssh-keygenスイッチは次のとおりです。

  • -s users_ca-CA秘密鍵
  • -I awesomeuser-ユーザーの名前
  • -n serveruser-認証が許可されるユーザー名
  • - V +1d-証明書に署名するときの有効期間を指定します。有効期間は、証明書が現在有効でその時点で期限切れになることを示す単一の時間で構成される場合と、コロンで区切られた2つの時間で構成され、明示的な時間間隔を示す場合があります。開始時刻は、YYYYMMDD形式の日付、YYYYMMDDHHMMSS形式の時刻、またはマイナス記号とそれに続く相対時刻で構成される(現在の時刻に対する)相対時刻として指定できます。 sshd_configのTIME FORMATSセクションで説明されている形式。終了時刻は、YYYYMMDD日付、YYYYMMDDHHMMSS時刻、またはプラス文字で始まる相対時刻として指定できます。例:"+52w1d"(今から52週間と今から1日間有効)、"-4w:+4w"(4週間前から今から4週間有効)、"20100101123000:20110101123000"(12から有効: 2010年1月1日の午後30時から2011年1月1日の午後12時30分)、"-1d:20110101"(2011年1月1日の昨日から真夜中まで有効)。
  • userkey.pub-ユーザーの公開鍵

d。公開鍵が署名されると、<old public key>-cert.pubという名前の新しい公開鍵(上の例では、名前がuserkey-cert.pubである)が生成されます。 Signed user key userkey-cert.pub: id "awesomeuser" serial 0 for serveruser valid from 2018-01-29T07:59:00 to 2018-01-30T08:00:53

e。新しく作成した公開鍵をユーザーに返す必要があります。受信すると、SSH CAで構成されたサーバーにアクセスできるようになります。

これでうまくいくはずです。

3
13dimitar