密钥认证
密码验证会造成账户口令的外泄,不安全,基于账号的保密性考虑,可以采用密钥验证实现远程连接。
Linux--Linux
1.Linux客户端主机上生成密钥文件
ssh-keygen -t rsa
选择密钥文件保存位置:【回车】默认保存在/.ssh/
为私钥文件设置密码:【回车】 不设置密码
再次输入密码:【回车】不设置密码
生成文件:id_rsa 私钥 id_rsa.pub 公钥
私钥文件被他人取得,会非法利用远程连接,基于安全的考虑,为私钥文件设置密码
如果为私钥文件设置密码,则在使用私钥时需先验证私钥密码
启用私钥文件 ssh-add /root/.ssh/id_rsa
验证私钥文件的密码
2.将公钥上传至ssh服务器
scp /.ssh/id_rsa.pub root@172.18.209.220:/.ssh/authorized_keys
3.测试
ssh root@172.18.49.100 无需验证密码直接登录
windows--linux
1.windows客户端生成密钥,将公钥传至linux Server
(公钥验证存放在linux服务器,私钥解密存放在客户端)
Puttygen 通过捕捉鼠标走向的算法生成密钥
公钥保存为无后缀的(例如pub),因要传至linux,linux下文件无后缀,利用WinSCP传至linux
私钥两种情况:保存为设置密码的私钥和不设置密码的私钥
2.转换密钥格式
将公钥pub内容转换格式存放到linux下的公钥验证文件 /root/.ssh/authorized_keys
ssh-keygen -i -f pub(上传的公钥)>> /root/.ssh/authorized_keys
vim /etc/ssh/sshd_config ssh的主配置文件
PasswordAuthentication yes改成no 不支持密码验证
service sshd restart
3.测试
putty 密码验证 不能登录
putty 左侧【SSH】 --【Auth】--【浏览】选择私钥文件
先用没有设置密码的私钥登录成功
再用设置密码的私钥登录--要求输入私钥密码
WinSCP 同样支持需要私钥
linux--windows
1.linux服务器端生成密钥,将私钥发放给授权的客户端
ssh-keygen -t rsa
选择密钥文件保存位置:【回车】默认保存在/.ssh/
为私钥文件设置密码:【回车】 不设置密码
再次输入密码:【回车】不设置密码
重命名公钥文件,以用于验证:mv id_rsa.pub authorized_keys
将私钥id_rsa利用WinSCP传至windows客户端
私钥两种情况:保存为设置密码的私钥和不设置密码的私钥
2.转换密钥格式
利用puttygen软件将收到的私钥文件转换格式
转换设置密码的私钥文件时需提供密码
【载入】已有私钥--【保存】转换格式之后的私钥
3.测试
putty WinSCP 支持密钥验证