Linux服务器间信任关系建立(ssh免密登录)

Linux服务器间信任关系建立

一、两台服务器环境

服务器A:192.168.40.5 远程端口:555
服务器B:192.168.40.6 远程端口:666

二、信任本机(本机免密登录)

1、生成秘钥

[root@localhost ~]# ssh-keygen   #全部默认选项
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
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:
SHA256:jJMu/lXGoYpTYlqkrX/PFHij3cieRRgF97efIuRiuYM root@localhost
The key's randomart image is:
+---[RSA 2048]----+
|        ..o      |
|         o .     |
|    .   . . . .  |
|   +   = = . . . |
|  . = * S =.  .  |
|   = = B O+    ..|
|  o + + B+oo . ..|
|   o o.E.+o . .  |
|    oo..=..      |
+----[SHA256]-----+
[root@localhost ~]# 

2、此时root目录下存在.ssh隐藏目录

[root@localhost .ssh]# pwd
/root/.ssh
[root@localhost .ssh]# ls
id_rsa  id_rsa.pub    
 #id_rsa是生成的私钥;id_rsa.pub是生成的公钥

3、本机.ssh路径下创建authorized_keys文件并将公钥导入

[root@localhost .ssh]# ls
id_rsa  id_rsa.pub
[root@localhost .ssh]# cat id_rsa.pub >> authorized_keys         #读取公钥文件并追加入authorized_keys文件中(自动创建authorized_keys文件)
[root@localhost .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
[root@localhost .ssh]# cat authorized_keys 
ssh-rsa AAAAB3N…………ysYOvzthBARySOZ/lx5l6fGsVV root@localhost
#此时authorized_keys文件中为公钥(无需关注),最后为用户名和主机名。

4、本机测试免密登录

[root@localhost .ssh]# ssh -P 555 localhost
ssh: connect to host 555 port 22: Invalid argument
[root@localhost .ssh]# 

三、服务器A——B单项信任关系

1、将A主机中生成的公钥传输到B主机中

[root@localhost .ssh]# scp -P 666 id_rsa.pub root@192.168.40.6:/root/ 
root@192.168.40.6's password: 
id_rsa.pub                                                                                                                               100%  396   272.7KB/s   00:00    
#这里使用scp命令将公钥传输到服务器B的/root路径下。

2、服务器B中将公钥追加入authorized_keys文件中

[root@localhost ~]# ll -a
total 32
dr-xr-x---.  2 root root  153 Apr 19 23:55 .
dr-xr-xr-x. 17 root root  224 Apr 19 09:46 ..
-rw-------.  1 root root 1342 Apr 19 09:47 anaconda-ks.cfg
-rw-------.  1 root root 1361 Apr 19 22:43 .bash_history
-rw-r--r--.  1 root root   18 Dec 28  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 28  2013 .bash_profile
-rw-r--r--.  1 root root  396 Apr 19 23:55 id_rsa.pub
-rw-r--r--.  1 root root  129 Dec 28  2013 .tcshrc
[root@localhost ~]# 

当服务器B用户路径下没有.ssh路径时*,使用ssh-keygen命令进行创建。

[root@localhost ~]# ssh-keygen
[root@localhost ~]# ls
anaconda-ks.cfg  id_rsa.pub
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# ls
id_rsa  id_rsa.pub
[root@localhost .ssh]# cat /root/id_rsa.pub >> authorized_keys
[root@localhost .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub

3、在服务器A中测试免密登录

[root@localhost .ssh]# ssh -p 666 root@192.168.40.6
Last login: Mon Apr 19 23:33:41 2021 from localhost
#可以通过ip a 查看是否正常登录B服务器。

四、B——A免密登录(两台主机相互信任)

1、将B主机上的公钥传输到A主机中,并追加到A主机中的authorized_keys文件中

[root@localhost .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
[root@localhost .ssh]# cp id_rsa.pub id_rsa_6.pub   #此处修改并复制了公钥文件名称
[root@localhost .ssh]# ls
authorized_keys  id_rsa  id_rsa_6.pub  id_rsa.pub
[root@localhost .ssh]# scp -P 555 id_rsa_6.pub root@192.168.40.5:/root
The authenticity of host '[192.168.40.5]:555 ([192.168.40.5]:555)' can't be established.
ECDSA key fingerprint is SHA256:yu3oGxQ//86Faycfei5eUnPuGRQ/0aCC5DXxwFyCW5c.
ECDSA key fingerprint is MD5:5b:c4:50:af:09:93:39:1e:4e:93:f8:4d:60:d3:d7:4b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.40.5]:555' (ECDSA) to the list of known hosts.
root@192.168.40.5's password:            #未建立信任之前需要输入密码
id_rsa_6.pub                                                                                                                             100%  408   197.3KB/s   00:00    
[root@localhost .ssh]# 

2、在A主机上将公钥追加到authorized_keys文件中

[root@localhost ~]# cat /root/id_rsa_6.pub >> /root/.ssh/authorized_keys 

若没有authorized_keys文件,需要手动添加
3、两台主机相互ssh进行测试

[root@localhost .ssh]# ssh -p 555 root@192.168.40.5
[root@localhost .ssh]# ssh -p 666 root@192.168.40.6
#此时两台主机可以ssh免密登录。
SSH (Secure Shell) 免密登录 Linux 服务器是一种安全的远程访问协议,它允许用户在不输入用户名和密码的情况下,从一台计算机连接到另一台远程服务器执行命令或管理文件。以下是设置 SSH 免密登录的基本步骤: 1. **安装 SSH**: 在 Linux 服务器上,如果你还没有安装 SSH,可以通过包管理器安装,如 Debian/Ubuntu 使用 `apt-get install openssh-server`,Red Hat/CentOS 则用 `yum install openssh-server`。 2. **配置 SSH 私钥对**: - 首先,在本地机器生成一个新的 SSH 密钥对,通常在 `~/.ssh` 目录下: ``` ssh-keygen -t rsa ``` - 接着,会提示选择保存位置,直接按回车默认即可,然后确认操作。私钥(id_rsa)将会被保留,公钥(id_rsa.pub)将自动复制到剪贴板,粘贴到服务器的 authorized_keys 文件中。 3. **将公钥添加到服务器**: 登录到服务器,编辑 `.ssh/authorized_keys` 文件(如果不存在,创建一个并追加公钥内容),并将你的公钥粘贴进去。确保权限设置为 600(只读给用户和组): ``` chmod 600 ~/.ssh/authorized_keys ``` 4. **测试免密登录**: 回到本地,尝试使用 `ssh user@server_ip`(将 `user` 替换为实际用户名,`server_ip` 为服务器的 IP 地址),如果没有密码提示,则说明免密登录已经设置成功。 5. **防火墙设置**: 如果你的服务器开启了防火墙,可能需要允许来自特定 IP 或 IP 地址范围的 SSH 连接。你可以通过修改防火墙规则(比如 iptables 或 ufw)来开放相应的端口(通常是 22)。 相关问题: 1. 如何查看当前已有的 SSH 密钥? 2. SSH 免密登录的安全性如何保障? 3. 如何检查服务器上的 SSH 是否启用并监听?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值