Linux的免密登录操作及遇到的问题

 

一、配置桥接网络:

1、配置对应我的热点信息:

根据上述信息在虚拟机中进行后续配置信息,在sys03上配置成功:

在sys04也进行对应的操作

sys04 需要配置的信息:

  • IP 地址:这应该是宿主机所在网络范围内的一个独立地址。根据宿主机的配置,IP地址是 192.168.167.x,其中 x 是 2 到 254 之间的任何没有被占用的数值。例如,我们可以选择 192.168.167.120(假设这个地址没有被使用)。
  • 子网掩码:宿主机的子网掩码是 255.255.255.0,这将与 sys04 的设置相匹配。
  • 网关:宿主机的网关是 192.168.167.155,sys04 应设置为相同的网关,以便能够访问外部网络。
  • DNS:宿主机使用的 DNS 是 192.168.167.8,sys04 也应该使用这个 DNS 地址。

二、有了上述的基础,那么接下来在整个实验中,我首先将在本机上测试能否实现两台虚拟机的免密登录。

1、下载SSH:sudo apt install openssh-server

确保SSH正常启动:sudo systemctl start ssh

2、在 sys03 上生成SSH密钥

按提示操作,如果提示输入密码,选择留空以实现免密登录。

3、将 sys03 上的公钥复制到 sys04:ssh-copy-id yandl@sys04。

使用了用户名 yandl(主机sys04的用户名才可以) 和主机名 sys04。在这里,出现一个报错:

这个错误信息表示 sys03 无法解析 sys04 的主机名。这通常是因为网络配置问题,导致无法将主机名转换为IP地址。

解决方案:

①使用IP地址代替主机名:ssh-copy-id yand1@192.168.167.129

②在sys03/4中更新 /etc/hosts 文件:sudo vim /etc/hosts

添加一行192.168.167.129 sys04    #这是在sys03中操作的,这样就可以解析sys04的主机名了。

接下来,就可以继续将 sys03 上的公钥复制到 sys04:

系统提示接受连接,输入 yes,然后输入 sys04 的密码。

显示了成功执行了 ssh-copy-id 命令,将 sys03 上的公钥添加到了 sys04 的 ~/.ssh/authorized_keys 文件中。这是设置SSH免密登录的关键步骤。当系统提示输入 sys04 的密码后,表示公钥已被接受,并且添加到了 sys04。

4、在 sys03 测试免密登录:ssh yandl@sys04

显示使用SSH命令成功登录到 sys04 了,登录后系统显示了欢迎信息,这表明免密登录已成功。如果这是免密码登录(即在执行 ssh yand1@sys04 命令时没有被提示输入密码),那么可以确认免密登录设置成功。

5、在sys03中进行控制sys04:

当从 sys03 免密登录到 sys04 之后,将拥有 sys04 上与在SSH登录账户权限相对应的用户权限。如果登录的是普通用户,则将拥有该用户在 sys04 上的正常权限;如果登录的是具有sudo权限的用户,那么可以执行需要管理员权限的命令。

因此,显示 /etc/hosts 文件内容的命令表明,在 sys03 通过SSH已经可以执行 sys04 上的命令了,实际上已经远程控制了 sys04。这是SSH最常见的用途之一,允许用户从一个系统安全地访问和管理另一个系统。

6、同理,在sys04中进行1-4的步骤,则可以实现sys04免密登录sys03,如下图,解释略。并在其它主机也实现互相免密登录。

7、结束免密登录:exit

三、将自己的与他人的虚拟机进行免密登录

注意:在免密登录时,以下命令使用的是对方的用户名以及主机名(展示部分)。

### 回答1: 可以通过生成密钥对的方式来配置 ssh 免密登录。 步骤如下: 1. 在本地主机上生成密钥对:打开命令行,运行命令:`ssh-keygen -t rsa` 2. 将公钥复制到远程主机上:运行命令:`ssh-copy-id username@remote_host` (username 是远程主机的用户名,remote_host 是远程主机的 IP 地址或主机名) 3. 测试免密登录:运行命令:`ssh username@remote_host`,如果能够免密登录到远程主机,则表示配置成功。 注意:在操作过程中,可能会遇到各种问题,例如网络问题、服务器配置问题等,请仔细阅读报错信息并对照相关文档进行排除。 ### 回答2: 配置 Linux 的 SSH 免密是一种方便又安全的方法,让我们可以直接通过 SSH 登录到远程服务器而无需输入密码。下面是一个简单的步骤来配置 SSH 免密: 1. 首先,确保在本地机器上已经生成了 SSH 密钥对。如果没有,可以使用 ssh-keygen 命令生成。输入以下命令: ```bash ssh-keygen -t rsa -b 4096 ``` 2. 输入生成密钥的保存路径和文件名,然后设置一个密码(可选)。生成成功后,会生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。 3. 将公钥复制到远程服务器。可以使用 ssh-copy-id 命令来完成此操作。输入以下命令,并替换 `<user>` 和 `<server_ip>` 分别为远程服务器的用户名和 IP 地址: ```bash ssh-copy-id <user>@<server_ip> ``` 4. 输入远程服务器密码进行确认后,公钥会被复制到远程服务器的 `~/.ssh/authorized_keys` 文件中。 5. 修改远程服务器的 SSH 配置文件(/etc/ssh/sshd_config)。确保以下选项被启用: ``` PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no ``` 6. 保存并退出文件,然后重启 SSH 服务以应用更改。输入以下命令重启 SSH 服务: ```bash sudo service ssh restart ``` 7. 现在,您应该可以通过 SSH 连接到远程服务器而无需输入密码。输入以下命令尝试连接: ```bash ssh <user>@<server_ip> ``` 这些步骤将使您的 Linux 系统配置为 SSH 免密登录到远程服务器。请注意,密钥文件需要保持机密和安全。 ### 回答3: 在Linux系统中配置SSH免密登录需要进行以下步骤: 1. 在本地机器上生成SSH密钥对。可以使用ssh-keygen命令生成密钥对,该命令默认生成的密钥对文件为 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub。可以选择设置密钥长度,一般默认为2048位。生成密钥对后,私钥文件id_rsa需要保留在本地机器上,公钥文件id_rsa.pub需要复制到远程机器。 2. 复制公钥到远程机器。将本地机器上生成的公钥文件id_rsa.pub的内容复制到远程机器的~/.ssh/authorized_keys文件中。如果该文件不存在,则可以手动创建。.ssh目录的权限应该设置为700,authorized_keys文件的权限应设置为600,这是为了保证SSH服务能读取这些文件。 3. 配置SSH服务。在远程机器上,打开SSH配置文件/etc/ssh/sshd_config,找到并修改以下几个配置项:PubkeyAuthentication yes,表示支持密钥认证;PasswordAuthentication no,表示禁止密码认证;以及RSAAuthentication yes,表示使用RSA算法进行认证。修改完成后保存并退出。 4. 重启SSH服务。在远程机器上,使用命令sudo systemctl restart sshd重启SSH服务,使配置生效。 5. 测试验证。可以尝试使用ssh命令进行远程登录,如果配置正确,登录时不再需要输入密码,即可免密登录远程机器。 需要注意的是,配置SSH免密登录时应注意密钥的保密性,私钥文件id_rsa应该妥善保存,并且不要随意将其复制到其他机器上。此外,为了增加安全性,可以设置私钥文件的密码保护,以防止私钥被他人复制和使用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值