SSH免密登录原理及配置

为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录。但是很多时候为了操作方便,我们都通过设置SSH免密码登录。那么该如何设置?是不是免密码登录就不安全了呢?

一、被访问主机的秘钥存储机制

在被SSH登录的主机中,其实都有一个存储来登录的主机的秘钥的文件,它的名字叫做authorized_keys,它的位置就在root/下面的隐藏目录.ssh中(注:如果这台主机没有被设置任何免秘钥登录,这个文件缺省是不存在的)

这里写图片描述

在authorized_keys文件中,存储着能够登录本地主机的各个主机的身份证信息,他们的存储格式都是以ssh-rsa开头的一组字符串。在这里,我们不用理解他的意义,但是要记住两点:

  1. 每个ssh-rsa及其之后字符串组成了一个唯一代表一个主机的秘钥;

  2. 这个秘钥是无法被仿照的;

二、SSH免密登录设置

(1)从Linux系统下发起免密登录

目标机器: HostA

本地机器: HostB

a. 在本地机器用ssh-keygen 生成一个公私钥对

[root@HostB ~] ssh-keygen
这里写图片描述
此时,在/root/下会生成一个.ssh目录,在这个目录下会生成两个文件
这里写图片描述
id_rsa是私钥,一定要保存好。不能丢失,也绝对不能分发给其他的用户。如果私钥丢失,身份就可能会被别人冒充。

id_rsa.pub是公钥,用来对外做分发用的。其他的主机拿到公钥之后,就能够判断私钥是否准确。

b. 把本地生成的公钥拷贝到需要登录的目标主机上

[root@HostB  ~]scp .ssh/id_rsa.pub root@192.168.1.181:/home/

c. 在远程主机上,将公钥添加到authorized_keys文件之后

[root@HostA  ~]cat id_rsa.pub >> .ssh/authorized_keys

[root@HostA  ~]chmod 700 .ssh

[root@HostA  ~]chmod 600 .ssh/authorized_keys

这里要注意两点:

1) 这里是目标主机HostA,而不是发起主机HostB

2) 这里需要用cat命令将公钥中的内容用重定向命令>>添加到authorized_keys文件之后,而不能简单的用cp命令。原因是因为authorized_keys里面以前可能添加过秘钥,如果用cp命令,可能将以前的秘钥都冲掉。

上述步骤都完成后,免密登录都已经设置完成,可以回到本地主机上进行SSH登录了

(2)从Windows系统下发起免密登录

目标机器: HostA

本地机器: HostB

软件工具:XShell

a. 在XShell上生成一个新的用户秘钥

工具->用户秘钥管理者->
这里写图片描述
b. 点击下一步,会生成一个公钥文件,把它保存下来。
这里写图片描述

c. 将这个公钥文件拷贝到目标主机的/root/.ssh目录下

把它添加到目标主机的authorized_keys文件中

[root@HostA  ~]cat id_rsa.pub >> .ssh/authorized_keys

设置完成

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSH登录原理是利用SSH公钥认证机制,即在客户端生成公钥和私钥,将公钥传输到服务器端,并将私钥保存在客户端。当客户端连接服务器时,服务器会向客户端发起挑战,客户端使用私钥对挑战进行签名,并将签名返回给服务器,服务器使用之前保存的公钥进行验证,验证通过后即可登录。 以下是实现SSH登录的步骤: 1. 在客户端上使用ssh-keygen命令生成公钥和私钥,命令格式如下: ``` ssh-keygen -t rsa ``` 2. 将生成的公钥传输到服务器端,可以使用ssh-copy-id命令,命令格式如下: ``` ssh-copy-id user@server ``` 这将会把公钥复制到服务器的~/.ssh/authorized_keys文件中。 3. 在客户端上保存私钥文件,通常保存在~/.ssh目录下。 4. 确保服务器端配置文件/etc/ssh/sshd_config中的PubkeyAuthentication参数为yes,表示启用公钥认证。 5. 确认客户端和服务器端的ssh服务都已经启动,然后就可以尝试使用ssh命令连接服务器,此时就不需要输入码了。 ``` ssh user@server ``` 注意事项: 1. 在使用ssh-keygen生成公私钥时,可以根据需要设置码,加强私钥的安全性。 2. 在使用ssh-copy-id将公钥复制到服务器端时,需要输入码。 3. 为了安全起见,建议只将公钥复制到需要登录的服务器上。如果需要在多台服务器之间进行登录,需要在每台服务器上重复执行以上步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值