linux ssh cnfg l,如何在 CentOS 8 上设置 SSH 密钥

安全 Shell (SSH) 是一个被设计用来在客户端和服务器之间进行安全连接的加密网络协议。

最流行的两个 SSH 授权方式是基于密码的验证,和 基于公钥的验证。 使用 SSH 密钥通常比传统的密码验证更安全,更便捷。

本文描述如何在 CentOS 8 上生成 SSH 密钥。我们将向你展示如何设置 SSH 密钥并且 不使用密码连接到远程服务器。

一、在 CentOS 上创建 SSH 密钥

在你的 CentOS 客户机上很可能你已经有一个 SSH密钥对了。如果你正在生成一个新的密钥对,旧的密钥对将会被覆盖。

运行下面的ls 命令检查密钥文件是否存在:

ls -l ~/.ssh/id_*.pub

如果命令行输出类似:No such file or directory,或者no matches found,这意味着用户没有 SSH 密钥对,并且你可以进行下一步去生成 SSH 密钥对。

否则,如果你拥有一个 SSH 密钥对,你可以直接使用它们,或者备份旧的密钥,并且生成新的密钥对。

使用你的邮件地址作为评论生成一个4096位 SSH 密钥对,输入下面的命令:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

你将会被提示指定文件名:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

输入Enter接受默认的文件位置和文件名。

下一步,你会被询问输入一个安全密码。不管你是否需要设置这个安全密码,这完全由你自己决定。 一个安全密码将会更加安全。如果你不想要安全密码,输入:

Enter passphrase (empty for no passphrase):

整个交互过程看起来像这样:

43b7024f069d644c2c521d8dfae65268.png

想要验证你的新的 SSH 密钥是否生成,输入:

ls ~/.ssh/id_*

输出:

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

二、拷贝公钥到服务器

现在 SSH 密钥已经生成,下一步就是拷贝公钥到你想要管理的服务器。

将公钥拷贝到远程服务器最简单并且最推荐的方式,就是使用ssh-copy-id工具。在你的本地机器终端中输入:

ssh-copy-id remote_username@server_ip_address

这个命令将会要求你输入remote_username密码:

remote_username@server_ip_address's password:

一旦用户被授权,公钥文件(~/.ssh/id_rsa.pub)将会被附加到远程用户~/.ssh/authorized_keys文件,并且连接将会被关闭。

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'username@server_ip_address'"

and check to make sure that only the key(s) you wanted were added.

如果ssh-copy-id在你的本地电脑上不可用,使用下面的命令拷贝公钥:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

三、使用 SSH 密钥登录你的服务器

在完成上面的步骤之后,你应该可以直接登录远程服务器,不用输入密码。

想要验证它,尝试通过 SSH 登录你的服务器:

ssh remote_username@server_ip_address

如果你没有为私钥设置密码,你将能够很快登录服务器。否则,你将被要求输入密码。

四、禁用密码验证

想要让远程服务器更安全,你可以禁用 SSH 密码验证。

在继续之前,确保你可以不使用密码,以 sudo 权限用户登录你的服务器。

按照下面的步骤来禁用 SSH 密码验证:

01.登录你的远程服务器:

ssh sudo_user@server_ip_address

02.使用你的文本编辑器打开 SSH 配置文件etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

03.搜索下面的指令,并且修改如下:

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

04.一旦完成,保存文件,并且重启 SSH 服务器,输入:

sudo systemctl restart ssh

此时,基于密码的验证被禁用。

五、总结

我们向你展示如何生成一个新的 SSH 密钥对并且设置基于 SSH 的验证。你可以使用同一个密钥去管理多个远程服务器。你已经学习到如何禁用密码验证并且增强你的服务器安全性。

默认情况下,SSH 监听端口 22。修改这个默认的 SSH 端口可以降低被自动攻击的风险。想简化你的工作流程,使用 SSH 配置文件来定义所有的 SSH 连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值