M22 使用非对称密钥实现ssh自动登陆

一 实验目的

一般在用户使用ssh客户端登陆ssh服务器时需要使用用户名和密码,本实验使用非对称加密的方式实现了无密码登陆ssh服务器。

二 实验流程

M22 使用非对称密钥实现ssh自动登陆 、

1 在客户端生成非对称密钥对

2 将非对称密钥中的公钥发送给ssh服务器端相应的帐号

3 当客户端通过ssh协议与服务器端发起连接时,客户端将私钥加密过的签名发送给服务器端,服务器端使用客户端的公钥确认该签名有效并通过认证,然后建立ssh连接

三 实验过程

1 客户端生成非对称密钥

# cd ~/.ssh

使用ssh-keygen命令可以自动生成密钥对

ssh-keygen的用法如下:
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-p new_passphrase] [-C comment] [-f output_keyfile]
-q:安静模式
-b:指定生成密钥的大小
-t:加密类型
-p:设置私钥的密码
-C:注释
-f:指定输出文件名

在这里直接使用缺省参数即可创建没有口令的非对称密钥对,也可以在后续选项里添加私钥密码

# ssh-keygen

或者使用-p参数将没有密码的私钥加密

# ssh-keygen -p -f id_isa

然后使用在登陆ssh服务器之前使用ssh agent管理链接,如果私钥未被加密,可以省略此步骤

# ssh-agent bash
# ssh-add

2 将私钥传送给ssh服务器

使用ssh-copy-id命令可以自动将私钥发送给ssh服务器端,并自动更改密钥名称

ssh-copy-id [-f] [-n] [-i [identity_file]] [-p port] [-o ssh_option] [user@]hostname

可选参数有:
-f:强制模式,不检测服务器上是否已经有了私钥
-n:检测服务器上的账户是否已经有客户端的公钥
-i:确认文件内容
-p:设置ssh端口
-o:设置ssh选项

在本实验使用如下方法:

# ssh yangfan@172.18.55.6

3 连接ssh服务器

# ssh yangfan@172.18.55.6
Last login: Wed Apr 12 22:21:24 2017 from 172.18.100.9
[yangfan@centos6 ~]$

实现了自动登陆

4 更新密钥

如果遇到客户端需要更换密钥的情况,需要重复以上步骤,最后执行如下命令将私钥更新到ssh-agent

# ssh-add

原创文章,作者:realmaster,如若转载,请注明出处:http://www.178linux.com/73235

(0)
realmasterrealmaster
上一篇 2017-04-12
下一篇 2017-04-13

相关推荐

  • 文本查看及处理工具

    文本查看及处理工具 wc wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数 语法 wc(选项)(参数) 选项 -c或–bytes或——chars:只显示Bytes数; -l或——lines:只显示列数; -w或——words:只显示字数。 参数 文件:需要统计的文件列表 实例 [root@localhost tmp]# cat …

    Linux干货 2018-03-18
  • Linux之iptables原理详解

    目录: 一、netfilter与iptables 二、filter、nat、mangle等规则表 三、INPUT、FORWARD等规则链和规则 四、Linux数据包路由原理 五、iptables编写规则  一、netfilter与iptables (1)Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既…

    2017-08-04
  • N25第七周博客作业

    第七周博客作业 1、 创建一个10G分区,并格式为ext4文件系统; fdisk/dev/sdb à nàpàlast扇区:+10Gàwàpartx -a /dev/sdb   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs  -t ext4 -b 2…

    Linux干货 2017-02-20
  • ansible批量部署主从DNS

    什么是DNS服务DNS的解析流程分析递归查询迭代查询DNS相关的术语说明生产环境中的应用Bind9常见配置说明使用ansible自动部署主从DNS 什么是DNS服务 DNS(Domain Name Service)是Internet上用于名称解析的服务,简单来说,就是将域名转换为IP地址的服务(正向解析),也可以用于将IP地址解析为对应的…

    Linux干货 2016-06-29
  • 3rd work

    1、列出当前系统上所有已经登陆的用户名,注意同一个用户登陆多次,则只显示一次即可。 [root@localhost ~]# w 11:50:45 up 24 min,  3 users,  load average: 0.04, 0.04, 0.10 USER     TTY      FROM             LOGIN@   IDLE   JCP…

    Linux干货 2017-10-08
  • N26第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。    who | cut -d' ' -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。    last | head -1   3、取出当前系统上被用户当作其默认s…

    Linux干货 2017-02-03