LinMao's Blog
学习科研记录与分享!

使用RSA加密算法安全登录服务器

RSA加密算法是一种非对称加密算法,也算的上目前最安全的加密算法,它理论基础是大数很难因式分解,目前能破译的最长密码是768位二进制,而一般我们采用的长度是2048位,所以还是很难很难破解。具体的算法原理可以参见RSA算法原理,现在需要知道的是这个算法有一个公钥一个私钥,公钥放在服务器上,私钥作为登录凭证自己保存。这里主要记录一下自己使用这个算法的过程:
  1. 通过命令ssh-keygen -t rsa 生成私钥和公钥。
    ssh-keygen -t rsa [-C "[email protected]"]
    Generating public/private rsa key pair.				
    Enter file in which to save the key (/home/lm/.ssh/id_rsa):	# 指定保存私钥的文件,默认就可以 
    Enter passphrase (empty for no passphrase): 	 # 对私钥再次加密,这不可以直接为空
    Enter same passphrase again: 
    Your identification has been saved in /home/lm/.ssh/id_rsa.
    Your public key has been saved in /home/lm/.ssh/id_rsa.pub.
    # 如果想把私钥放到别的电脑上继续通过之前的公钥访问,新位置上保存的私钥权限应为400
  2. 然后把公钥(id_rsa.pub)利scp到服务器,在服务器上用户目录下新建一个.ssh文件夹,然后在.ssh文件夹下新建文件authorized_keys,然后执行cat id_rsa.pub >> authorized_keys将自己的公钥文件追加到authorized_keys文件中。
  3. 更改sshd_config配置文件:
    # sudo vim /etc/ssh/sshd_config
    RSAAuthentication yes #RSA认证
    PubkeyAuthentication yes #开启公钥验证
    AuthorizedKeysFile %h/.ssh/authorized_keys #验证文件路径
    PasswordAuthentication no #禁止密码认证
    PermitEmptyPasswords no #禁止空密码
    # 最后保存,重启sshd服务
    sudo service sshd restart
    
  4. 然后就可以通过ssh user@hostname登录服务器而不用输入密码,同时由于禁止密码认证,在其他电脑上也不能用密码登录服务器,只能用rsa私钥来登录,提高了安全性。另外还可以更改sshd_config文件中的默认port:22来提高安全性。

Reference:

https://www.findhao.net/easycoding/1714
赞(0) 打赏
转载请注明出处:LinMao's Blog(林茂的博客) » 使用RSA加密算法安全登录服务器

评论 1

静态归档版本,评论功能已关闭。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    在服务器端,.ssh文件夹的权限为700;authorized_keys文件的权限为644;即:
    chmod 700 .ssh
    chmod 644 authorized_keys

    linmao 6年前 (2019-07-13)回复

LinMao's Blog(林茂的博客)

了解更多联系我们

觉得文章有用就打赏一下作者吧~

支付宝扫一扫打赏

支付宝

微信扫一扫打赏

微信