使用密码口令登录服务器会有两个问题:
- 安全问题,容易产生口令泄漏等安全风险
- 口令较长,每次都需要输入口令较为繁琐
基于此,总结下解决方案。
口令较长的问题可以用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
|
|
修改目录权限
|
|