我孤身走在路上, 石子在雾中发亮,夜很安静,荒原面对太空,星星互诉衷肠
更改SSH密码登录为密钥文件登录
更改SSH密码登录为密钥文件登录

更改SSH密码登录为密钥文件登录

一下是一些增强SSH安全性的方法:

  1. 使用密钥认证:SSH默认使用密码认证,但你可以选择使用密钥对认证,这比密码认证更安全。
  2. 更改默认端口:默认的SSH端口是22,这是攻击者的首选目标。你可以更改SSH配置文件中的默认端口,以减少被攻击的可能性。
  3. 禁用root登录:在SSH配置文件中,你可以禁止root用户直接登录。这样,即使攻击者知道你的root密码,他们也无法直接登录。
  4. 使用防火墙:你可以使用防火墙来限制可以访问SSH服务的IP地址。
  5. 使用Fail2ban:Fail2ban是一个防止暴力破解的软件,它可以监视你的日志文件,并在发现多次登录失败后,自动封锁来源IP。
  6. 定期更新:定期更新你的系统和SSH软件,可以确保你拥有最新的安全补丁,防止已知的安全漏洞。
  7. 最小化权限:只给需要的用户和组分配SSH访问权限,不要给不需要的用户提供权限。
  8. 使用双因素认证:双因素认证可以增加额外的安全层。即使攻击者得到你的密码,没有第二因素,他们仍然无法登录。

我觉得还是使用密钥对来实现登录比较安全

以下是在Linux系统中更改SSH默认密码登录为密钥认证的步骤:

  1. 生成SSH密钥对:
    在你的本地机器上打开终端,然后输入以下命令来生成新的SSH密钥对:
   ssh-keygen

在生成秘钥对时,系统会提示你输入一个口令(passphrase)。这个口令是用来保护你的私钥的。如果你设置了口令,那么每次使用私钥时都需要输入这个口令。这可以防止你的私钥在无意中被其他人使用。

如果你不想设置口令,可以直接按回车键,这样就会创建一个没有口令的密钥对。但是这样做的风险是,如果有人获取了你的私钥,别人就可以不受限制地使用它。

所以,是否设置口令取决于你对安全性和便利性的权衡。如果你对私钥的保管非常自信,那么可能不需要设置口令。但是如果你担心私钥可能会丢失或被盗,那么设置一个口令是一个更安全的做法。

按照提示进行操作,你可以为密钥设置密码,也可以留空。这将在你的主目录的.ssh文件夹下生成两个文件:id_rsa(私钥)和id_rsa.pub(公钥)。

  1. 将公钥复制到服务器:
    使用以下命令将公钥复制到你的服务器:
   ssh-copy-id 用户名@服务器IP

输入你的服务器密码,公钥就会被添加到服务器的”~/.ssh/authorized_keys”文件中。

如果你的SSH服务端口不是默认的22端口,你可以在ssh-copy-id命令中使用-p参数指定端口。例如,如果你的SSH服务端口是2222,你可以这样使用ssh-copy-id命令:

ssh-copy-id -p 2222 用户名@服务器IP

这样,ssh-copy-id就会通过2222端口连接到你的服务器,并将你的公钥添加到~/.ssh/authorized_keys文件中。

  1. 修改SSH配置以禁用密码认证:
    登录到你的服务器,然后使用文本编辑器打开SSH配置文件。例如:
   sudo nano /etc/ssh/sshd_config

找到以下行并进行修改:

   PasswordAuthentication no
   PubkeyAuthentication yes

保存并关闭文件。

  1. 重启SSH服务:
    为了让更改生效,你需要重启SSH服务:
   sudo service ssh restart

如果是本机添加的话:

首先,你需要在你的用户主目录下创建一个名为.ssh的目录(如果它还不存在)。然后,你可以将你的公钥添加到新的authorized_keys文件中。以下是具体步骤:

  1. 在你的用户主目录下创建.ssh目录:
   mkdir -p ~/.ssh

-p参数会确保如果.ssh目录已经存在,mkdir命令不会报错。

  1. 将你的公钥添加到authorized_keys文件中:
   cat /path/to/your/public/key >> ~/.ssh/authorized_keys

请将/path/to/your/public/key替换为你的公钥文件的实际路径。>>操作符会将公钥添加到authorized_keys文件的末尾,如果文件不存在,它会创建该文件。

  1. 设置正确的权限:
    对于.ssh目录和authorized_keys文件,需要设置正确的权限,以防止未经授权的访问:
   chmod 700 ~/.ssh
   chmod 600 ~/.ssh/authorized_keys

这将.ssh目录的权限设置为只有所有者可以读、写和执行,将authorized_keys文件的权限设置为只有所有者可以读和写。

现在,你只能使用SSH密钥对进行认证登录了。密码认证已被禁用。

一条评论

  1. Pingback:Iptables用法 - 无双的个人博客

发表回复

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

− 3 = 7