2025年免密登录详细讲解

免密登录详细讲解首先了解一下 ssh 的工作过程 在整个通讯过程中 为实现 SSH 的安全连接 服务端与客户端要经历如下五个阶段 1 版本号协商阶段 SSH 目前包括 SSH1 和 SSH2 两个版本 双方通过版本协商确定使用的版本 2 密钥和算法协商阶段 SSH 支持多种加密算法

大家好,我是讯享网,很高兴认识大家。

首先了解一下ssh的工作过程,在整个通讯过程中,为实现SSH的安全连接,服务端与客户端要经历如下五个阶段:

1、版本号协商阶段:SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本

2、密钥和算法协商阶段:SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法

3、认证阶段:SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证

4、会话请求阶段:认证通过后,客户端向服务器端发送会话请求

5、交互会话阶段:会话请求通过后,服务器端和客户端进行信息的交互

其中认证阶段有两种认证方法:

1、基于口令的认证(password认证):客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器,服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败消息。

2、基于密钥的认证(publickey认证):客户端产生一对公共密钥,将公钥保存到将要登录的服务器上的那个账号的家目录的.ssh/authorizedkeys文件中。认证阶段:客户端首先将公钥传给服务器端。服务器端收到公钥后会与本地该账号家目录下的authorizedkeys中的公钥进行对比,如果不相同,则认证失败;否则服务端生成一段随机字符串,并先后用客户端公钥和会话密钥对其加密,发送给客户端。客户端收到后将解密后的随机字符串用会话密钥发送给服务器。如果发回的字符串与服务器端之前生成的一样,则认证通过,否则,认证失败。

我们使用第二种认证方式

1.两台机器:第一台机器作为客户端,第二台机器作为服务器,在第一台使用rhce用户免密登录第二台机器

1>先在客户端生成一对公共密钥


讯享网

[bh@baiheng ~]$ ssh-keygen -t rsa -b 2048 --生成一对公共密钥 Generating public/private rsa key pair. Enter file in which to save the key (/home/bh/.ssh/id_rsa): key保存的目录默认为家目录下的.ssh/,如果不改变,直接回车 Created directory '/home/bh/.ssh'. Enter passphrase (empty for no passphrase): --密码,如果不需要,直接回车 Enter same passphrase again: --再次输入密码,直接回车 Your identification has been saved in /home/bh/.ssh/id_rsa. Your public key has been saved in /home/bh/.ssh/id_rsa.pub. The key fingerprint is: SHA256:5HAOcT5s+cIIaHsI+SGF34UTYV6y3hqSUWGZlD/qK2A bh@baiheng The key's randomart image is: +---[RSA 2048]----+ | ...XOo . | |.o +.= . | |+.=.++o O | | =.B.oo@ o | | * +.o.S . | |.E o.o . | |.. .. | | . . | | ... | +----[SHA256]-----+ 此时一对密钥生成成功,进入家目录下的.ssh下查看是否生成成功 [bh@baiheng ~]$ cd .ssh/ [bh@baiheng .ssh]$ ll total 8 -rw------- 1 bh bh 1823 Jan 8 16:22 id_rsa ---私钥 -rw-r--r-- 1 bh bh 392 Jan 8 16:22 id_rsa.pub ---公钥 

讯享网

2>将公钥保存到将要登录的服务器上的那个账号的家目录的.ssh/authorizedkeys文件中

讯享网ssh-copy-id -i bh@192.168.245.129 ---将公钥保存到将要登录的服务器上的那个账号的家目录的.ssh/authorizedkeys文件中 ssh-copy-id -i bh@192.168.245.129 bh--所要复制到的用户 192.168.245.129--服务器的的ip 至此免密登录还没设置成功,所以此次登录还要输入密码 [bh@baiheng .ssh]$ ssh-copy-id -i bh@192.168.245.129 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/bh/.ssh/id_rsa.pub" The authenticity of host '192.168.245.129 (192.168.245.129)' can't be established. ECDSA key fingerprint is SHA256:QgFDtok3CICC4Nwf7A5QtUBBlb0+Ksfvyiu6p1K8VsA. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys bh@192.168.245.129's password: --输入密码 Number of key(s) added: 1 ---密钥增加,表面添加成功 Now try logging into the machine, with: "ssh 'bh@192.168.245.129'" and check to make sure that only the key(s) you wanted were added. 此时免密登录配置完成

3、测试

[bh@baiheng ~]$ ssh bh@192.168.245.129 --登录服务器。免密登录 Red Hat Enterprise Linux release 8.5 (Ootpa) 4.18.0-348.el8.x86_64 localhost.localdomain /bin/bash Activate the web console with: systemctl enable --now cockpit.socket This system is not registered to Red Hat Insights. See https://cloud.redhat.com/ To register this system, run: insights-client --register Last login: Sun Jan 8 20:34:23 2023 from 192.168.245.128 [bh@bh ~]$ 

2.禁止root用户远程登录和设置三个用户sshuser1, sshuser2, sshuser3, 只允许sshuser3登录,不允许sshuser1, sshuser2登录

1>创建三个用户sshuser1, sshuser2, sshuser3,并设置密码

讯享网1、创建用户sshuser1, sshuser2, sshuser3 [root@baiheng ~]# useradd sshuser1 [root@baiheng ~]# useradd sshuser2 [root@baiheng ~]# useradd sshuser3 2、给用户设置密码 [root@baiheng ~]# echo '123' | passwd --stdin sshuser1 Changing password for user sshuser1. passwd: all authentication tokens updated successfully. [root@baiheng ~]# echo '123' | passwd --stdin sshuser2 Changing password for user sshuser2. passwd: all authentication tokens updated successfully. [root@baiheng ~]# echo '123' | passwd --stdin sshuser3 Changing password for user sshuser3. passwd: all authentication tokens updated successfully. 

2、 使用vim打开/etc/ssh/sshd_config文件,设置登录白名单(默认没有这个配置,需要自己手动添加),允许远程登录的用户。如果名单中没有的用户,则提示拒绝登录。按G进入文件底部添加AllowUsers sshuser3,仅让sshuser3登录,不添加sshuser1, sshuser2,即拒绝登录。

[root@baiheng ~]# vim /etc/ssh/sshd_config--进入配置文件 AllowUsers sshuser3 --进入文件底部添加 

3、测试

C:\Users\37419>ssh sshuser1@192.168.245.128 ---sshuser1拒绝登录
sshuser1@192.168.245.128's password:
Permission denied, please try again.
sshuser1@192.168.245.128's password:
Permission denied, please try again.
sshuser1@192.168.245.128's password:

C:\Users\37419>ssh sshuser2@192.168.245.128 ---sshuser2拒绝登录
sshuser2@192.168.245.128's password:
Permission denied, please try again.
sshuser2@192.168.245.128's password:
Permission denied, please try again.
sshuser2@192.168.245.128's password:

C:\Users\37419>ssh sshuser3@192.168.245.128 -----sshuser3成功登录
sshuser3@192.168.245.128's password:
Red Hat Enterprise Linux release 8.5 (Ootpa)
4.18.0-348.el8.x86_64
localhost.localdomain
/bin/bash
Activate the web console with: systemctl enable --now cockpit.socket

小讯
上一篇 2025-01-24 15:59
下一篇 2025-03-22 13:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/127770.html