ssh认证

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

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

原文地址:https://www.cnblogs.com/liangml/p/6416415.html