好久不用,又生疏了。
今晚实操了一下,作一个记录。
使用rsa的密钥对登陆linux服务器,主要是为了安全。
这种证书级别的登陆,比最复杂的root用户名和帐号的安全性都要高一个等级。
至少服务器不会被暴破(暴力破解)。
~~~~~~~~~~~~~~~
参考URL:
https://www.cnblogs.com/JohnABC/p/4001383.html
~~~~~~~~~~~~~~~~
大步骤如下:
一,在一个服务器上,使用ssh-keygen -t rsa命令,产生一对密钥(默认目录为当前用户主目录的.ssh目录下,公钥名为id_rsa.pub,私钥名为id_rsa)。
二,将私钥和公钥都下载下来,保存在自己电脑安全的地方(如果手里有一批同一个项目的机器,不用为每个机器都产生一对密钥,而是直接使用同一对密钥即可,方便管理)。
三,登陆到要设置证书的linux服务器,将公钥传到LINUX服务器,指定用户的~/.ssh/目录下,运行cat id_rsa.pub >> ~/.ssh/authorized_keys,将公钥导入authorized_keys文件中(这个文件才是ssh登陆存放公钥的地方,使用追加的方式,是因为这个文件支持存放多个公钥)。
四,将相应的目录和文件使用chmod命令,赋予正确的权限。(.ssh目录的权限为700,authorized_keys的权限为600)
五,更改/etc/ssh/sshd_config文件,默认的不管,主要注意以下的设置。
#root可账户登录 PermitRootLogin yes# 是否让 sshd 去检查用户家目录或相关档案的权限数据, # 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。 # 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入 StrictModes no# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。 # 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys#有了证书登录了,就禁用密码登录吧,安全要紧 PasswordAuthentication no
六,更新的sshd的配置文件之后,使用service sshd restart重启sshd服务。
(第三步里,我们已登陆LINUX服务器,给新手的建议是,不要太自信sshd的设置完全正确。在重新sshd服务前,多开两个xshell窗口,万一证书配置不正确,让新连接无法进入,至少,我们还有老的xshell窗口登陆调整设置。)
七,使用xshell等工具,导入私钥证书,用于服务器登陆。