一、条件:
1、主机A=>10.114.3.11
2、主机B=>10.114.3.12
3、主机A访问主机B的ssh服务是可达的,但要输入密码;
二、目标:
从主机A访问主机B时,不需要输入密码,即实现免密访问;
例如:用于Jenkins发布时,主机A为Jenkins所在主机,主机B为目标应用部署主机。
三、操作分以下四步:
【1/4】、在主机A上生成rsa公钥和私钥,执行命令【ssh-keygen -t rsa】,并连续3个回车,记着不要有任何交互输入;
[deploy_user@bogon .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/deploy_user/.ssh/id_rsa):
/home/deploy_user/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/deploy_user/.ssh/id_rsa.
Your public key has been saved in /home/deploy_user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:6li+uN8Cjnj50BnJojQ0JChPkdgY/XEnO7h+IExbOh4 deploy_user@bogon
The key's randomart image is:
+---[RSA 2048]----+
|+B.o |
|B = . o . |
|.= . + + |
|. +.+.o |
| =.++. .S |
|..Eo+o . |
|.o.Oooo |
|. =.o*o. |
| . .=+=o. |
+----[SHA256]-----+
【2/4】检查主机B上是否存在文件:/home/deploy_user/.ssh/authorized_keys
如果不存在,可以手工创建目录和文件
【3/4】在主机A上执行以下命令,即将主机A的公钥放到主机B的认证keys文件/home/deploy_user/.ssh/authorized_keys中
# cat /home/deploy_user/.ssh/id_rsa.pub | ssh deploy_user@10.114.3.12 'cat >> /home/deploy_user/.ssh/authorized_keys'
【4/4】检查主机A上的文件目录及文件权限
[deploy_user@bogon .ssh]$ pwd
/home/deploy_user/.ssh
[deploy_user@bogon .ssh]$ ll
总用量 16
-rw-------. 1 deploy_user root 399 8月 5 17:47 authorized_keys
-rw-------. 1 deploy_user root 1679 8月 5 21:29 id_rsa
-rw-r--r--. 1 deploy_user root 399 8月 5 21:29 id_rsa.pub
-rw-r--r--. 1 deploy_user root 173 8月 5 17:23 known_hosts
必须按以下权限:建议主机A和主机B都按此权限设置
主机A和主机B都需要:chmod 700 .ssh
仅主机B需要:chmod 600 authorized_keys
四、检查免密访问效果,在主机A上访问主机B的ssh服务;
[deploy_user@bogon .ssh]$ ssh deploy_user@10.114.3.12
Last login: Wed Aug 5 21:28:04 2020 from 10.114.3.11
[deploy_user@bogon ~]$ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.114.3.12 netmask 255.255.255.0 broadcast 10.114.3.255
inet6 fe80::bc46:8eb0:fd84:f77b prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:02:0e:01 txqueuelen 1000 (Ethernet)
RX packets 32221095 bytes 32087996313 (29.8 GiB)
RX errors 0 dropped 15 overruns 0 frame 0
TX packets 11917673 bytes 12525092188 (11.6 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 298241928 bytes 27753100908 (25.8 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 298241928 bytes 27753100908 (25.8 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
【小结】
1、采用RSA非对称密码中公钥的机制;
2、两个主机的.ssh权限都必须为700的,而目标主机的authorized_keys权限必须为600;
3、通过RSA生产秘钥对时,不输入校验数据,从而才可以免输入,相当免密了;
【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:
分享到:
相关推荐
总结一下,`sudo` 提权和普通用户免密切换到root是通过编辑`/etc/sudoers`文件实现的,这包括为用户添加相应的权限行,如`shi ALL=(ALL) NOPASSWD: ALL`。在使用这种权限时,应考虑到安全性,只授予必要的权限,并...
在 Linux 下,默认情况下1024 以下的端口是要在 root 下才能使用的,在其他用户下,如果尝试使用将会报错。在有的时候,我们可能考虑程序运行在 root 帐户下,但这可能会给 Linux 系统带来安全风险。那如何能够让非 ...
Linux 下非 Root 用户安装 Mysql 在 Linux 操作系统中安装 Mysql 数据库可以通过多种方式实现,包括使用源代码编译安装和二进制安装。对于非 Root 用户来说,安装 Mysql 可能会遇到一些权限问题,但是通过正确的...
Linux 下非 root 权限的 MySQL 安装是指在 Linux 操作系统中,使用非 root 用户权限来安装和配置 MySQL 数据库服务器的过程。这种安装方式可以避免使用 root 权限,从而提高系统的安全性。 安装准备 在开始安装 ...
在Linux系统中,定时任务是通过Cron服务来实现的,它允许用户设置定期执行的任务。然而,大多数情况下,只有root用户才有权限编辑全局的Crontab文件。但有些场景下,非root用户也需要设置自己的定时任务,例如为了...
在 Linux 中,有许多第三方工具可以帮助非root权限用户访问文件系统,例如 FsDex、ext2fsnt、ext2ifs 等工具。 示例:`fsdex /dev/hda5 /mnt` 这将使用 FsDex 工具挂载 /dev/hda5 设备到 /mnt 目录下,使用非root...
为了防止用这种方法实现 Root 远程登录,需要限制普通用户不能执行 su 命令: 1. 将 su 命令属主改为 root; 2. 将 su 命令的权限改为 700 通过以上四种方法,我们可以限制 Root 用户进行远程登陆,提高 Linux ...
"Linux禁止普通用户su至root的解决"这个主题聚焦于如何防止未经授权的普通用户提升权限至root,以增强系统的安全性。root用户拥有最高级别的权限,可以执行任何操作,因此,确保root账户的安全对于整个系统的稳定性...
3. 验证 A 主机免密复制 B 主机文件 使用 scp 命令复制 B 主机的文件到 A 主机,例如: scp root@192.168.255.134:/path/to/file /local/path 这时,我们不需要输入密码就可以跨主机复制文件。 4. 在 Shell 中...
### Ubuntu Linux 如何启用 Root 用户 #### 一、理解 Ubuntu 中 Root 用户的默认状态 Ubuntu Linux 的设计哲学中,为了增强系统的安全性,默认情况下并不启用 root 用户。这意味着在安装 Ubuntu 后,用户无法直接...
本文将详细介绍如何在非root权限下配置Linux Hadoop集群的自动SSH。 首先,理解SSH的基本概念是必要的。SSH是一种网络协议,用于加密网络连接,提供远程登录和其他网络服务,确保数据传输的安全性。在Hadoop集群中...
本文将详细介绍如何在Linux系统中添加用户并赋予root权限。 一、添加用户 在Linux系统中,添加用户可以使用adduser命令或useradd命令。adduser命令用于添加一个普通用户,而useradd命令则可以添加一个具有特定权限...
### Linux下破解MySQL的root用户密码详解 #### 标题解析 标题“Linux下破解mysql的root用户密码!”明确指出了本文将要讨论的主题:在Linux操作系统环境下如何重置或破解MySQL数据库系统的root用户密码。 #### ...
本文将深入探讨如何通过授权来让非root用户使用通常只有root才能执行的命令,以及一些相关的Linux命令和概念。 首先,`/sbin`目录下的命令主要是系统管理命令,这些命令通常需要root权限才能运行。而`/bin`目录下的...
在一台服务器A上实现对多台机器(SUT,被测机)的批量执行命令,发送文件 使用系统,工具: CentOS 7 pssh(yum install pssh安装):用于批量执行操作,前提是已经配置好了ssh免密登录 sshpass(yum install sshpass...
本文将详细介绍如何在Linux系统中以非root用户运行Tomcat,确保服务的安全性。 首先,我们需要创建一个新的用户组和用户。在本文中,我们创建了一个名为`dev`的用户组和一个名为`tomcat`的用户。使用`groupadd`命令...
在Linux系统中,普通用户通常没有管理权限,但有时为了执行特定的系统级任务,可能需要切换到具有超级用户权限的root账号。然而,频繁地输入root密码可能会造成不便,尤其是自动化脚本或无人值守场景下。这时,可以...
使用非root用户运行WAS也存在四个主要缺点:1)需要对相关的文件和目录设置响应的访问权限,尤其是应用程序需要明确知道自己需要访问的目录和文件夹,维护相对比较麻烦;2)WAS的管理员由于没有root用户的一些权限,...
Linux 普通用户提权到 root 的方法和技术 Linux 操作系统中,普通用户如何提权到 root 是一个非常重要的安全问题。在 Linux 系统中,普通用户只能执行有限的操作,而 root 用户则拥有最高的权限。因此,普通用户...
一、概述 为禁止普通用户su至root,需要分别...经过上述配置后,普通用户将被禁止su至root,如果希望指定普通用户su至root,可以执行如下命令将该用户添加至wheel组中: usermod -G wheel username 三、示例 [root@t