使用密码口令登录服务器会有两个问题:
- 安全问题,容易产生口令泄漏等安全风险
- 口令较长,每次都需要输入口令较为繁琐
基于此,总结下解决方案。
口令较长的问题可以用sshpass来解决每次都需要输入长密码的烦恼,但是使用sshpass是极其不安全的,因为所有系统上的用户在命令行中通过简单的 ps 命令就可看到密码。
所以,目前较为安全的SSH登录验证方式还是采用密钥登录。
环境
- Win 10
- CentOS 7
- Windows Terminal等命令行工具
Windows配置
生成SSH密钥
查看用户目录/.ssh 目录,如果有id_rsa.pub和id_rsa文件,则此步跳过。
否则执行以下命令生成密钥。
|
|
其中id_rsa.pub为公钥,id_rsa为私钥。
CentOS配置
添加公钥
以root用户为例,其他用户操作类似,只需要将操作目录换成目标用户目录即可。如用户为zhangsan,则只需要将~/(即/root/)换成/home/zhangsan/就可以。
|
|
上传在Win10 生成的公钥文件到 CentOS 并追加内容到 authorized_keys
|
|
重启SSH
|
|
修改目录权限
|
|