密钥认证

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

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

ssh认证的更多相关文章

  1. ssh 认证指定端口

    [root@database2 ~]# cat ssh.sh if [ ! $# -eq 2 ] ;then echo "请输入用户密码以空格分开" exit else ssh-k ...

  2. 批量的单向的ssh 认证

    <pre name="code" class="python">if [ ! $# -eq 2 ] ;then echo "请输入用户密码 ...

  3. debian下使用gitosis+gitweb搭建SSH认证的git服务器

    搭建完成Git服务器后,需要使用两台机器进行测试,一台机器作为服务器端server,一台服务器作为客户端client.整个系统,需要三个计算机账户,这里假设server端的账户名为git,client ...

  4. github添加ssh认证

    总概:在使用git的时候,和目标仓库建立关系有两种方式https,ssh.一般用的是https认证(这样简单方便),但有个缺点,pull,push等操作需要频繁输入用户验证.虽然可以把用户验证账号密码 ...

  5. Linux学习笔记总结--ssh认证登录

    原理简介 SSH证书认证登录的基础是一对唯一匹配密钥: 私钥(private key)和公钥(public key).公钥用于对数据进行加密,而且只能用于加密.而私钥只能对使用所匹配的公钥,所加密过的 ...

  6. git ssh认证

    一般新手用git时,使用HTTPS都需要输入用户名和密码,这是一个很低效的开发过程.(虽然有时可以让开发人员减少push的次数).github提供了几种连接方式,其中以https:开头的代表https ...

  7. 华为SSH认证配置

    [设备型号]华为switch-S5700s ————1: [SW1] rsa/dsa local-key-pair create #创建本地密钥对 The key name will be: SW1_ ...

  8. Jenkins - SSH认证方式拉取Git代码

    1.本地生成密钥 [root@root ~] ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which ...

  9. ssh 认证

    ssh 秘钥认证流程 ssh配置认证 基于口令(密码)的安全验证 [root@m01 ~]# ssh 10.0.0.41 hostname root@10.0.0.41's password: bac ...

  10. [Linux] 一次SSH认证失败引发的关于通过日志查错误的思考

    一.缘由: 早上在用SSH公钥认证打通所有的机器,有一台机器在完成一些列操作后密钥登陆失败,其他机器一切正常. 错误如下:Public-key authentication with the serv ...

随机推荐

  1. 使用Gradle管理第三方依赖

    http://blog.bsdn.org/2012/01/02/%E4%BD%BF%E7%94%A8gradle%E7%AE%A1%E7%90%86%E7%AC%AC%E4%B8%89%E6%96%B ...

  2. Codeforces 1082 C. Multi-Subject Competition-有点意思 (Educational Codeforces Round 55 (Rated for Div. 2))

    C. Multi-Subject Competition time limit per test 2 seconds memory limit per test 256 megabytes input ...

  3. CF1025B Weakened Common Divisor【数论/GCD/思维】

    #include<cstdio> #include<string> #include<cstdlib> #include<cmath> #include ...

  4. 洛谷——P3908 异或之和

    P3908 异或之和 题目描述 求1 \bigoplus 2 \bigoplus\cdots\bigoplus N1⨁2⨁⋯⨁N 的值. A \bigoplus BA⨁B 即AA , BB 按位异或. ...

  5. centos7 crontab管理

    crontab -l 当前用户的任务 crontab -e 编辑任务列表 crontab -r 删除当前用户的任务

  6. Python开发基础-Day18继承派生、组合、接口和抽象类

    类的继承与派生 经典类和新式类 在python3中,所有类默认继承object,但凡是继承了object类的子类,以及该子类的子类,都称为新式类(在python3中所有的类都是新式类) 没有继承obj ...

  7. 多协议注入工具t50

    多协议注入工具t50   t50是Kali Linux自带的一款网络数据包注入工具.该工具支持15种协议,不仅涵盖常规协议(ICMP.TCP.UDP),还涵盖基础协议和路由协议(GRE.IPSec.R ...

  8. 分享Kali Linux 2017年第31周镜像文件

     分享Kali Linux 2017年第31周镜像文件  Kali Linux官方于7月30日发布2017年的第31周镜像.这次维持了11个镜像文件的规模.默认的Gnome桌面的4个镜像,E17.KD ...

  9. ES5 方法学习

    Object 1. Object.getPrototypeOf(o)获取对象的prototype对象.等价于以前的o.__proto__ var o = {}; Object.getPrototype ...

  10. Nginx简单认识

    写在前面: 最近一直在学习,这几天了解了下Nginx,虽然看了些资料,斌哥也讲解了一下,但是貌似缺少了实践,就显得对其认识的不那么深刻.这里也还是简单的记录下把. 什么是Nginx? Nginx (e ...