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 [email protected]

3 连接ssh服务器

# ssh [email protected]
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 10:28
下一篇 2017-04-13 11:35

相关推荐

  • 马哥教育的第一天

    春天的北京,比想象中的更加温暖,跨越一千三百公里的距离,我来到马哥教育位于北京昌平区的校区,传说中的春寒料峭似乎遗忘了北京,自湖北出门的时候,车外还是淅淅沥沥的小雨,到达北京,迎接我的却是春风拂面熏人醉。 安顿了两天之后,我们三十期的开班典礼在三月二十六号早上的九点钟准时开始,由云珍老师主持,传说中的马哥、王老师、张sir、宗华老师纷纷登台致辞,分别从运维工…

    2018-03-26
  • linux用户与用户组详解

    LINUX用户与用户组详解     1,用户和用户组文件   在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。分别是 passed gpassd shadow group 中。   在linux系统中,所创建的用户帐号和其相关信息(密码除外)均是存放在/etc…

    Linux干货 2017-07-22
  • 第二周 文件管理

    1.Linux上的文件管理类型命令都有哪些,其常用的使用方法及其相关示例演示 mkdir—— 创建目录  make directory 命令格式——mkdir [OPTION]… DIRECTORY… -p:自动按需创建父目录; -v:verbose,显示详细过程; -m MODE:创建目录直接给定权限,否则是默认权限; 注意:路径基…

    2017-12-10
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。  cp复制,mv移动,rm删除     1、cp:             1,用法:      &n…

    Linux干货 2016-07-04
  • Shell脚本编程入门

    认识Shell Shell原意为贝壳 Linux系统中的shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。 可以使用命令查看当前使用的是哪种shell以及当前Linux系统中都支持哪些shell种类。   查看当前…

    Linux干货 2016-08-12
  • 关于文件权限管理了解和使用

                    文件权限管理   文件属性格式              文件属性操作 chown          设置文件的所有者…

    系统运维 2016-08-05