SSH相关

发布时间 2024-01-02 17:12:54作者: heysong

常用

  • ssh-keygen -R 远程ip。删除本地known_hosts上关于远程ip的公钥printfinger

证书登录

CA

生成user_causer_ca.pub和host_cahost_ca.pub

CA根据就是一对密钥,用user_ca来生成客户端证书,用host_ca来生成服务端证书

  • 生成用户端CA,会生成user_causer_ca.pub密钥对
# 生成 CA 签发用户证书的密钥 
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/user_ca -C user_ca
  • 生成服务端CA,会生成host_cahost_ca.pub密钥对
# 生成 CA 签发服务器证书的密钥
$ ssh-keygen -t rsa -b 4096 -f host_ca -C host_ca

服务端

生成ssh_host_rsa_key-cert.pub

  • 服务端的/etc/ssh下面会有ssh_host_rsa_key,如果没有,可以通过以下脚本来生成
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -b 4096 -t rsa
  • 用host_ca来生成服务端证书
$ ssh-keygen -s host_ca -I mycert -h -n 172.16.20.48 -V +52w ssh_host_rsa_key.pub

指定用host_ca和ssh_host_rsa_key.pub来生成证书,会生成ssh_host_rsa_key-cert.pub

其中-I 是指定id,这个id要和客户端的证书的id一样,比如这里是mycert,则后面客户端的证书也要用mycert

服务端的-n指定服务端的域名,或者不填

 

客户端

生成user_key-cert.pub

  • .ssh目录下会有密钥对,比如user_key和user_key.pub,如果没有,自己生成一个
sudo ssh-keygen -f ~/.ssh/user_key -b 4096 -t rsa

用user_ca来生成客户端证书

ssh-keygen -s user_ca -I mycert -n chenhs -V +1d user_key.pub

指定用user_ca和user_key.pub来生成客户端证书user_key-cert.pub

其中-I要和上面服务端指定的参数一样mycert,-n 指定登录的用户名