Linux下SSH免密码登录配置详解

在Linux系统中,SSH(Secure Shell)是一种用于远程登录和管理服务器的安全协议,通过SSH,我们可以在本地计算机上执行命令,就像直接在服务器上操作一样,为了提高安全性和便捷性,我们通常会配置SSH免密码登录,本文将详细介绍如何在Linux下配置SSH免密码登录。

准备工作

1、确保服务器已经安装了SSH服务,如果没有安装,可以使用以下命令进行安装:

Linux下SSH免密码登录配置详解

对于基于Debian的系统(如Ubuntu):

```

sudo apt-get update

sudo apt-get install openssh-server

```

对于基于RPM的系统(如CentOS、Fedora):

```

sudo yum install openssh-server

```

2、生成SSH密钥对,在本地计算机上执行以下命令:

```

ssh-keygen -t rsa

```

按照提示操作,可以选择默认路径和文件名,也可以自定义,最后会生成两个文件:私钥(默认为id_rsa)和公钥(默认为id_rsa.pub)。

配置免密码登录

1、将公钥复制到服务器上的authorized_keys文件中,使用以下命令将公钥内容复制到剪贴板:

```

cat ~/.ssh/id_rsa.pub | clip

Linux下SSH免密码登录配置详解

```

通过SSH登录到服务器:

```

ssh 用户名@服务器IP地址

```

输入密码后,进入服务器,接下来,创建一个新的authorized_keys文件,并将剪贴板中的公钥内容粘贴进去:

```

mkdir ~/.ssh

touch ~/.ssh/authorized_keys

echo '粘贴剪贴板中的公钥内容' >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

```

2、修改服务器上的SSH配置文件,编辑SSH配置文件/etc/ssh/sshd_config,找到或添加以下两行:

```

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

```

Linux下SSH免密码登录配置详解

保存并退出编辑器,重启SSH服务以使更改生效:

```

sudo systemctl restart sshd

```

至此,SSH免密码登录配置完成,现在,尝试再次通过SSH登录服务器,应该不再需要输入密码。

注意事项

1、为了保证安全,建议将私钥文件设置为只读权限:

```

chmod 400 ~/.ssh/id_rsa

chmod 400 ~/.ssh/id_rsa.pub

```

2、如果需要在多个服务器上使用相同的SSH密钥对进行免密码登录,可以将公钥添加到所有服务器的authorized_keys文件中,但这样做可能会导致安全问题,因为如果一个服务器的私钥泄露,其他服务器也会受到影响,建议为每个服务器单独生成一对SSH密钥对。

3、如果需要禁用SSH免密码登录,只需删除服务器上的authorized_keys文件或注释掉PubkeyAuthenticationAuthorizedKeysFile这两行配置即可,然后重启SSH服务以使更改生效。

相关问题与解答

问题1:为什么在执行ssh-keygen -t rsa时提示“无法打开设备”?

解答:这个问题通常是由于没有指定私钥文件的存储位置导致的,可以尝试指定一个路径和文件名,ssh-keygen -t rsa -f ~/my_key,这样,私钥文件将被保存在~/my_key目录下。

问题2:为什么在服务器上执行systemctl restart sshd时提示“Unit sshd.service not found”?

解答:这个问题可能是由于使用的Linux发行版不同导致的,在某些发行版中,SSH服务的管理单元名称可能不是sshd.service,请参考相应发行版的文档,找到正确的管理单元名称,然后执行相应的命令来重启SSH服务,在CentOS和Fedora中,可以使用以下命令:sudo systemctl restart sshd.servicesudo systemctl restart openbsd-sshd.service

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/355906.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-03-11 20:41
Next 2024-03-11 20:45

相关推荐

  • linux命令行注销用户

    在Linux操作系统中,命令行是用户与系统进行交互的重要方式之一,通过命令行,用户可以执行各种操作,如查看文件、创建目录、安装软件等,在某些情况下,用户可能需要注销当前的命令行会话,以便切换到其他用户或者重新登录,本文将详细介绍如何在Linux中使用命令行注销的方法,并结合实际案例进行讲解。一、注销命令行的基本概念在Linux系统中,……

    2023-11-06
    0187
  • 什么是Linux系统日志

    什么是Linux系统日志Linux系统日志是记录系统运行状态、事件和错误的重要信息,它们可以帮助管理员了解系统的运行状况,诊断问题并进行故障排查,Linux系统日志分为两种类型:系统日志(System Log)和安全日志(Security Log)。1、系统日志系统日志主要记录了与系统管理和运行相关的事件,主要包括以下几类日志:内核日……

    2024-01-11
    0194
  • 国内linux主机租用怎么修改主机名称

    修改Linux主机名是一个相对简单的过程,但需要管理员权限,以下是详细的步骤和相关技术介绍。了解主机名在Linux系统中,主机名(hostname)是系统在网络上识别的名称,它用于网络程序中标识主机,例如在网络登录或文件传输过程中,默认情况下,当你安装Linux操作系统时,会分配一个默认的主机名,通常是一串随机字符或者根据发行版规则生……

    2024-02-09
    0114
  • 如何自建语音服务器?步骤详解与注意事项

    自建语音服务器需要选择硬件、安装操作系统和软件,配置网络设置,并进行安全加固。

    2024-10-27
    05
  • 远程服务器怎么上传文件

    远程服务器上传文件是现代网络工作中常见的需求,无论是企业还是个人用户,都需要掌握这项技能,本文将详细介绍如何上传文件到远程服务器。我们需要了解什么是远程服务器,远程服务器是指通过网络连接到用户的计算机,用户可以在本地计算机上操作远程服务器上的文件和数据,远程服务器通常用于存储和处理大量数据,提供网站托管、数据库服务等。要上传文件到远程……

    2023-12-05
    0135
  • linux如何查询mysql的版本信息

    在Linux系统中,我们可以通过命令行来查询MySQL的版本信息,这是非常重要的,因为不同的MySQL版本可能有不同的特性和功能,我们需要知道我们的MySQL版本才能进行正确的操作,以下是具体的步骤:1、打开终端:你可以通过搜索或者快捷键Ctrl+Alt+T来打开终端。2、输入命令:在终端中输入以下命令,然后按回车键执行。mysql ……

    2023-12-09
    0190

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入