ssh认证

时间:2022-12-05 08:11:14

密钥认证

 密码验证会造成账户口令的外泄,不安全,基于账号的保密性考虑,可以采用密钥验证实现远程连接。

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 支持密钥验证