安全Shell或SSH是在OSI模型的第7层上运行的加密(加密)网络协议,以允许远程登录和其他网络服务在不安全的网络上安全地运行。
OpenSSH是用于使用SSH协议进行远程登录的主要连接工具。它对所有流量进行加密,以消除窃听,连接劫持和其他攻击。此外,OpenSSH还提供了一整套安全的隧道功能,多种身份验证方法和复杂的配置选项。本文介绍了有关确保SSH服务器设置安全的重要任务。
密码是人们可以用来登录和访问文件,程序以及其他资源的字符串。密码有助于确保人们只有在得到授权后才能访问服务器。密码可以由字母,数字,符号和空格组成。根据您的需求,它应该容易记住且独特,但对他人来说却不容易猜测。不要使用ʻadmin123`或ʻadmin`等。
SSH管理的默认Post是22,您应该对其进行更改以使其更细微地表明您的服务器正在运行SSH管理.SSH配置文件位于/ etc / sshd /目录中,您必须编辑配置文件/ etc / ssh / sshd_config。要编辑sshd_config文件,请使用以下命令–
$ nano /etc/ssh/sshd_config
搜索“端口”行,命令行应如下所示–
Port 22
将其更改为您喜欢的端口号,例如,我们使用的端口号为1337,如下所示-
Port 1337
请选择服务器上尚未使用的端口。要获取该命令当前正在使用的端口列表,如下所示:
$ netstat -ntap
SSH有两个协议版本,一个是不安全的旧协议1,另一个是新协议2。因此,我们应该始终使用protocol2,并且它具有很强的加密完整性检查。
您应该禁用root用户的直接登录,因为对root超级用户的名称有很多蛮力攻击。或者,用户应该从命令行登录root用户。要禁用root登录,请在/ etc / ssh / sshd_config文件中使用以下行。
PermitRootLogin no
您应该添加一个新用户以登录到服务器。假设您已经创建了用户tutorialspoint和linux以登录到服务器,然后可以在/ etc / ssh / sshd_config文件中添加新行。
AllowUsers ruiko mikoto
我们强烈建议您使用此选项来保护openSSH,而不要使用基于密码的身份验证。首先,您必须在本地计算机上创建一个公钥-私钥对,如下所示–
$ssh-keygen -t rsa -b 4096
样本输出应如下所示–
Generating public/private rsa key pair. Enter file in which to save the key (/home/linux/.ssh/id_rsa): Created directory '/home/linux/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/linux/.ssh/id_rsa. Your public key has been saved in /home/linux/.ssh/id_rsa.pub. The key fingerprint is: 4a:a1:22:b4:e8:79:12:19:1e:a0:30:ee:93:db:cd:a1 linux@linux The key's randomart image is: +--[ RSA 4096]----+ |+ | |=. | |.= . | |= * . . | |oO. ... S | |..*.+... | | = E o. | | o | | | +-----------------+
它将在〜/ .ssh /目录中创建2个文件,id_rsa作为私钥,id_rsa.pub作为公钥。如果提示您输入密码,则可以将其保留为空白或输入密码。建议使用密码保护密钥。现在,使用ssh-copy-id命令将公共密钥id_rsa.pub上传到您的服务器,如下所示-
$ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip
它将您的公钥写入服务器中的〜/ .ssh / authorized_keys /文件中。现在打开/ etc / ssh / sshd_config文件,并在下面的行中取消注释。
AuthorizedKeysFile %h/.ssh/authorized_keys
现在,使用以下命令重新启动ssh服务器–
$sudo systemctl restart sshd
最后,使用以下命令连接到服务器-
$ssh -p '4422' 'user@serverIP'
恭喜你!现在,您知道“ OpenSSH安全最佳实践”。在下一篇Linux文章中,我们将学习有关这些命令类型的更多信息。继续阅读!