原理:
密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上。这样当登录远程服务器时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证。服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是否是合法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到 “challenge”之后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性。
客户机:172.16.142.4
远端主机:172.16.142.5
在客户机以root用户执行下述命令:
[root@localhost .ssh]#/usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
30:f6:d7:2a:ac:56:eb:3f:fa:40:25:8d:90:96:68:cb root@localhost.localdomain
------------------------------------------------
说明:
该命令将在用户的主目录/.ssh目录下面产生一对密钥
一般采用的ssh的rsa密钥:
id_rsa 私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1
-------------------------------------------------------
[root@localhost .ssh]#scp /root/.ssh/id_rsa.pubroot@172.16.142.5:/root/.ssh/authorized_keys
The authenticity of host '172.16.142.5 (172.16.142.5)' can't be established.
RSA key fingerprint is 4b:a5:74:fb:2e:08:60:af:fa:76:d4:b0:26:4c:13:75.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.142.5' (RSA) to the list of known hosts.
root@172.16.142.5's password:
id_rsa.pub 100% 236 0.2KB/s 00:00
-------------------------------------------------------------
说明:
将公钥拷贝到远端主机,并写入授权列表文件
你也可以把公钥文件拷贝过去后,在远端主机下直接执行
touch /root/.ssh/authorized_keys
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
-------------------------------------------------------------
操作完毕,登陆检查。
[root@localhost .ssh]#ssh 172.16.142.5
root@172.16.142.5's password:
请注意此时如果仍提示输入密码,请检查如下文件夹和文件的操作权限,这是非常重要的, 否则ssh公钥认证体制不能正常工作:
172.16.142.4(客户端)
/home/root文件夹的权限是600
/home/root/.ssh文件夹的权限是600 (好像这个权限关系不是很大)
/home/root/.ssh/id_dsa私钥的权限600
172.16.142.5(远端主机)
/home/root文件夹的权限是644
/home/root/.ssh文件夹的权限是644 (好像这个权限关系不是很大)
/root/.ssh/authorized_keys公钥的权限644
--------------------------------------------------------------
[root@localhost ~]#ssh 172.16.142.5
Last login: Sat Dec 15 21:10:17 2007 from 172.16.142.4
[root@localhost ~]#
无密码SSH登陆成功!
分享到:
相关推荐
本篇文章主要介绍了Linux使用ssh公钥实现免密码登录实例。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
详解SSH公钥秘钥图解
LinuxSSH使用ssh公钥密钥自动登陆linux服务器.pdf
LinuxSSH使用ssh公钥密钥自动登陆linux服务器收集.pdf
渗透测试模拟实战——暴力破解、写入ssh公钥留后门、植入GPU WK程序(靶机系统:ubuntu),真实有效,如有侵权,请联系csdn删除即可
之前采用上述步骤生成公钥后,将公钥拷贝到server端,但是始终连接不上,步骤都没有问题,后来发现,在secureCRT软件中,没有将ssh-rsa显示全,采用双屏显示器拉长才显示全(这个问题找了一晚上,真悲催!...
sshkeys - 获取ssh服务器的所有ssh公钥
搭建基于SSH公钥访问的Git远程仓库。附加安全受限shell配置。
阿里云效配置ssh公钥
SSH公钥访问,教你如何安全传输文件,登录时只需要输入一次密码,下次登录时就不再需要密码.
1 本机创建ssh密钥 ssh-keygen 2 拷贝公共密钥到“被登陆机”输入密码, scp id_rsa.pub root@10.35.0.35:~/.ssh/id_rsa.pub 3 ssh到“被登陆机”把...以上就是小编为大家带来的使用ssh-keygen,实现免密码登陆li
靶场 对应 应急响应教程:https://blog.csdn.net/weixin_40412037/article/details/122963589?spm=1001.2014.3001.5502
一键配置集群各节点ssh免密码登录 首先确保每个节点已经安装了expect ,确保服务器/root/script路径存在 修改每个节点ssh配置 vi /etc/ssh/ssh_config ------------------------------- # StrictHostKeyChecking ...
生成的key是和一对用户绑定的,生成key的用户以及存储这个key的公钥的远端主机的用户...ssh的原理就是,公钥给人家,自己留秘钥,远端主机的其他用户也是无法看到这个指定的用户的接受到的公钥的,所以用户是一对一的。
sshkeys获取ssh服务器的所有ssh公钥安装go -get -u github.com/Eun/sshkeys/cmd/sshkeys或从发行版进行预编译用法sshkeys [options] host选项:-format = authorized_keys sshkeys获取assh的所有ssh公钥。...
ssh-keyscan命令是一个收集大量主机公钥的实用工具。它的目的是创建和验证“ssh_known_hosts”文件。 ssh-keyscan命令仅支持ssh协议版本1,在ssh协议版本2无法使用...收集主机ssh公钥,并输出调试信息: [root@linuxcoo
本地主机ha01配置: 代码如下:[root@ha01 /]# cd /etc/ssh[root@ha01 ssh]# ssh-keygen -t rsa -N “” (该步骤生成key公私密钥对,-N “”表示密钥对短语为空)Generating public/private rsa key pair.Enter file ...
临时允许朋友使用Github的公钥ssh登录到你的Linux
1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根... 如果希望ssh公钥生效需满足至少下面两个条件: 1) .ssh目录的权限必须是