跳到主要内容

SSH 公钥用于服务器身份验证

使用 SSH 密钥对作为登录凭证,相比用户名和密码的认证方式具备以下优势:

安全性:相比普通的密码登录,SSH 密钥对的安全强度更高,可避免暴力破解。SSH 密钥对采用非对称加密算法生成,使用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。私钥可由用户自己保管,无需通过网络发送。

便捷性:使用 SSH 密钥对可以实现一键远程登录远程服务器,无需每次登录都输入密码。另外,在同时维护多台远程服务器的场景下,使用 SSH 密钥对登录可以实现更加方便、统一的管理。

公钥:在 Linux 系统中,公钥内容存储在 ~/.ssh/authorized_keys 文件中。

私钥:拥有私钥的任何人都可以解密登录信息,用户需要将私钥保存在一个安全的位置。

准备

  • 已获取登录远程服务器的用户名和密码 (或密钥)
  • 确认本地计算机与远程服务器之间的网络连通正常
  • 默认端口 22,远程服务器防火墙已放开端口访问
  • 如果服务端开启的不是默认端口,需要以 ssh -p <port> 指定端口进行连接

方式一:使用密码登录

ssh <username>@<IP address or domain name>

方式二:使用密钥登录

赋予私钥文件仅可读权限

# Linux
chmod 400 <私钥绝对路径>

# Windows 10 或 Windows Server 2019 系统,CDM
icacls <私钥路径> /grant <Windows 系统用户帐户>:F
icacls <私钥路径> /inheritancelevel:r

进行远程登录

ssh -i <私钥文件路径> <username>@<IP address or domain name>