mit*_*rma 6 linux ssh linux-networking ssh-keys certificate-authority
我正在尝试使用 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
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助指导这个过程,似乎出了一些小问题,我无法弄清楚?
目前我没有 dns 名称,但有我想要连接的 IP 地址。
提前致谢
我将详细介绍提供临时 ssh 访问权限所需的所有步骤:
ssh-keygen -f <key-pair-name> -b 4096
这将创建一个私钥,该私钥将用于签署用户的公钥,以及一个将在服务器端放置并配置为受信任 CA 密钥的公钥。私钥必须存储在安全位置并使用强密码进行保护。
A。将 CA 公钥复制到/etc/ssh/
目录中,并确保其具有适当的所有权(用户 root、组 root)和权限(0600,无 ACL),如下所示:
-rw------- 1 root root 404 Jan 29 08:05 users_ca.pub
b. 添加条目/etc/ssh/sshd_config
以启用 CA 的使用
Run Code Online (Sandbox Code Playgroud)# 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
Run Code Online (Sandbox Code Playgroud)
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
- 签署证书时指定有效期。有效性间隔可以由单个时间组成,指示证书从现在开始有效并在那时到期,或者可以由冒号分隔的两个时间组成,以指示明确的时间间隔。开始时间可以指定为日期格式YYYYMMDD
、时间格式YYYYMMDDHHMMSS
或相对时间(相对于当前时间),由减号后跟相对时间组成,格式如 的时间格式部分中所述sshd_config
。结束时间可以指定为YYYYMMDD
日期、YYYYMMDDHHMMSS
时间或以加号字符开头的相对时间。例如:("+52w1d"
有效期从现在到52周零一天),"-4w:+4w"
(有效期从四个星期前到四个星期后),"20100101123000:20110101123000"
(有效期从2010年1月1日中午12点30分到1月1日中午12点30分,2011),"-1d:20110101"
(有效期从昨天到2011年1月1日午夜)。userkey.pub
- 用户的公钥d. 当公钥被签名时,会生成
一个名称为<old public key>-cert.pub
(在上面的示例中带有 be 的名称)的新公钥。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 的服务器。
这应该适合你。
归档时间: |
|
查看次数: |
8057 次 |
最近记录: |