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>