如何在 Linux 中设置和使用 SSH

如果您使用 Linux 已有一段时间,那么您无疑听说过一种称为 SSH 的工具。 Secure Shell,通常称为 SSH,是一种用于在客户端和远程服务器之间建立安全连接的网络协议。 它旨在允许用户通过网络远程安全地登录到各种不同类型的计算机。 在这里,我们将向您展示如何轻松设置 SSH 密钥并将其复制到您的服务器。

安装 SSH

首先,我们必须安装 SSH 服务器。 您可以找到并安装 openssh-server 在软件中心或您的包管理器中打包。 或者,如果您在服务器上(或者只是更喜欢使用终端),请打开终端并键入以下命令:

在 Linux 中启用 SSH

在您的机器上安装 OpenSSH 服务器后,您需要启动并启用 systemd 单元。 为此,您只需在终端中键入以下命令:

在 Ubuntu 上启用 SSH

生成 SSH 密钥

安装完 openssh 服务器后,就可以开始生成 SSH 密钥对了。 在继续之前,请确保您没有现有的密钥对,因为此过程将覆盖现有的密钥对。

要检查您是否有现有的密钥对,请使用以下命令:

如果你有一个现有的密钥对,上面的命令应该显示“id_rsa”和“id_rsa.pub”文件。

拉斯拉什

确认您没有现有的 SSH 密钥对后,您可以继续生成新的密钥对。 否则,请备份您的旧密钥以避免丢失它们。

要生成新密钥,请使用以下命令:

上面的命令调用 ssh-keygen 实用程序以交互方式生成 SSH 密钥对。 使用 -t 选项,我们指定要生成的密钥类型。 在这种情况下,我们生成一个 RSA 密钥。

我们还使用 -b 选项来指定密钥中的位数。 如果使用 RSA 密钥,则最小位大小为 1024。如果未指定,它将生成 3072 位的密钥。

SSH 注册机 Rsa

最好使用默认位置来存储 SSH 密钥,以避免在使用密钥连接到 SSH 时输入路径。

如果您不想使用密码加密您的密钥,请按 Enter 跳过。

将密钥复制到远程服务器

现在我们已经生成了一个新的 SSH 密钥对,我们需要将它上传到我们要管理的远程机器上。

最有效的方法是使用 ssh-copy-id 命令。 将命令用作:

如果您使用具有单独文件名的密钥文件,则可以使用以下命令指定密钥文件的路径。

如果您是第一次登录远程机器,您需要接受指纹。

接下来,输入远程用户的 SSH 密码。

一经认证, ssh-copy-id 命令将附加您的内容 id_rsa.pub 远程机器上“~/.ssh/authorized_keys”文件的密钥和 close 连接。

SSH 复制 ID

登录远程机器

成功完成上述所有步骤后,您现在无需密码即可登录远程服务器。

您可以使用以下命令对此进行测试:

除非您为密钥启用了密码,否则您将自动登录。

经常问的问题

1. SSH 安全吗?

SSH 是一个强大的安全工具,它允许经过身份验证的用户登录到远程系统。 但是,它仅在其配置文件允许的范围内安全。 未配置/错误配置的 SSH 服务器也容易受到黑客和第三方访问的攻击。 确保在安装后立即保护 SSH 配置。

2. SSH 授权密钥在哪里?

SSH authorized_keys 文件保存每个用户的公钥文件,并指定允许哪些用户登录服务器。 在 Linux 中,authorized_keys 文件通常位于用户主目录的“.ssh”文件夹中。

3. 如何解决 ssh-copy-id 权限被拒绝的问题?

只有当您已经在远程服务器中设置了公钥并禁用了密码验证时,才会发生这种情况。 要解决这个问题,首先登录到您的服务器,在“/etc/ssh/sshd_config”文件中启用密码验证,然后运行 ssh-copy-id 再次命令。

复制新的密钥文件后,请记住再次禁用密码验证选项。

总结

现在您已经设置并使用了 SSH,接下来您应该做的是保护 SSH 配置。 或者,如果您使用的是 Windows,请了解如何在 Windows 中生成 SSH 密钥对。

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅