Linux实现密钥免密登录 让Linux VPS服务器更安全

这里的密钥对是 Public key,具体请参考 公开密钥加密

将密钥保存到远程服务器

1.如果是通过ssh-keygen生成的密钥对,那么我们需要将id_rsa.pub文件放置到你要进行远程登陆的用户主目录下,比如这里的用户名为centos,主目录为/home/centos,那么我们需要将id_rsa.pub公钥放置到/home/centos/.ssh目录下,然后执行以下操作:

使用命令

ssh-keygen -t rsa

接下来会提示让你输入一个路径来保存密钥对,默认在 ~/.ssh/id_rsa 下面生成 id_rsa(私钥)和 id_rsa.pub(公钥),如果没什么特殊需求就直接默认就好。

  • id_rsa.pub文件,重命名为 authorized_keys;
  • 执行chmod 600 ./authorized_keys 命令,修改权限;
  • 执行命令 sudo vi /etc/ssh/sshd_config进行配置,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存;
  • 重启sshd服务,Debian/Ubuntu执行sudo /etc/init.d/ssh restart ;CentOS执行:sudo /etc/init.d/sshd restart。

注:centos7重启服务方式与以前不同,请执行systemctl restart sshd.service

2.如果是通过xshell方式生成的密钥对,那么将xshell生成的id_rsa.pub文件放置到用户的主目录下的.ssh目录(比如/home/centos/.ssh),接下来执行的操作跟上述操作[1 ] 是一样的。

然后提示你输入密码(即本机使用 SSH 连接时的密码 #和服务器密码无关),也是直接回车默认为空即可。

将公钥上传到服务器上

这里以使用 SCP 为例,上传公钥 id_rsa.pub 到服务器上

scp ~/.ssh/id_rsa.pub [email protected]:~

将公钥追加到服务器的认证密钥中

将上传到服务器上的 id_rsa.pub 公钥追加到 authorized_keys 文件中,命令是

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

修改服务器的配置以启用公钥认证

修改 vi /etc/ssh/sshd_config 配置文件(如果有的话就进行修改,没有的话就添加进来)

RSAAuthentication yes        # 启用 RSA 认证(默认是注释掉的,将注释去掉,如果不是 yes,改为 yes)
PubkeyAuthentication yes     # 启用公钥认证(默认是注释掉的,将注释去掉,如果不是 yes,改为 yes)
PasswordAuthentication no    # 禁止密码认证 (改为 no, 默认为 yes 是用密码认证)
StrictModes no               # 修改为 no, 默认为 yes. 如果不修改用 key 登陆是出现 server refused our key(如果 StrictModes 为 yes 必需保证存放公钥的文件夹的拥有与登陆用户名是相同的.“StrictModes” 设置 ssh 在接收登录请求之前是否检查用户家目录和 rhosts 文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。)

重启 SSH 服务

service sshd restart
# 或者
/etc/init.d/ssh restart

最后验证一下

连接服务器,这里以 SSH 客户端为例

ssh [email protected]

然后,就直接连上了,不需要输入密码了呢 O(≧▽≦)O


 上一篇
宝塔面版nginx无法启动详解 宝塔面版nginx无法启动详解
宝塔面板在面板设置里勾选了监听ipv6,正常情况下ipv4应该也是可以使用的,部分服务器出现问题的话会导致ipv4无法登陆。这里说下重置这个选项的方法。 在SSH里运行以下代码即可。 rm -f /www/server/panel/data
2020-03-26
下一篇 
openwrt 修改feeds.conf.default为GitHub源 openwrt 修改feeds.conf.default为GitHub源
lede和openwrt合并之后 lede官网挂了。。 git.openwrt.org,也访问不了。。 只好去github上找最新源码: git clone https://github.com/openwrt/openwrt.git 最新
2020-02-02
  目录