ssh 公钥认证登录 public key authentication

what and why

  • 比简单的用户名-口令登录要安全,他提供极长密码无法提供的密码强度
  • 由一对 公钥(public key) 私钥(private key) 组成
  • 使用非对称加密算法, rsa dsa ed25519
公钥(public key)

公钥用于被拷贝到目标服务器上,任何拥有其他者公钥的服务器都可以加密数据,但只有持有相应私钥的人才能正确解密数据。一旦服务器收到用户发送的公钥并且认为该公钥可信,服务器就会在 authorized_keys 文件中标记该公钥可信,此类密钥(authorized 中的公钥们 )称为 授权密钥。

私钥(private key)

私钥应仅被用户自己保留,只有持有与目标服务器上公钥对应的私钥才能通过身份认证,被称为 身份密钥。

用ssh来进行 公钥认证登录

  1. 用户在本地创建密钥对,使用 ssh-keygen ssh-keygen -t <encrypt algorithm> -f <fileName> -b <keySize>
  2. 私钥仅在用户本地保存,而将公钥传输到目标服务器上,使用 ssh-copy-id ssh-copy-id -i <myPublicKey> user@host 这个过程中需要验证在远程服务器的身份
  3. 在通过身份验证后,远程服务器存储公钥并标记为 已认证
  4. ssh -i ~/privateKey user@host

也可以在 ~/.ssh/config 文件中配置

1
2
3
4
5
Host <connection_name>
HostName <host>
User <username>
Port <port>
IdentityFile <privateKeyFilePath>

然后 ssh connection_name

结束力 😂

Ste.jpeg