一 实验目的
一般在用户使用ssh客户端登陆ssh服务器时需要使用用户名和密码,本实验使用非对称加密的方式实现了无密码登陆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