unbuntu16.04 服务器的 免密登录、秘钥登录和禁止密码登录 配置

免密登录#

先进入 /Users/USERNAME/.ssh 目录,看一下有没有 id_rsa 和 id_rsa.pub 这两个文件 如果有请忽略 步骤一

步骤一#

我的是 mac 终端命令行执行 然后一路回车

ssh-keygen -t rsa

进入以下目录

/Users/USERNAME/.ssh

会生成有两个文件 私钥 id_rsa、公钥 id_rsa.pub

步骤二#

把公钥拷贝到需要登录的远程服务器或 Linux 系统上,这里可以使用 ssh-copy-id

ssh-copy-id -i/Users/USERNAME/.ssh/id_rsa.pub root@ip

但是 ssh-copy-id 默认端口是 22,如果您的 SSH 端口不是 22,也就是远程服务器端口修改成其他的了,那就要得加上 -p + 端口。

进入远程服务器需要 SSH 登录的用户的目录下,这里仍然用 root 用户,cd /root/.ssh,执行 ls 看看目录下是否有 authorized_keys 文件,如果没有的话则执行以下命令创建:

touch authorized_keys

执行成功会创建空 authorized_keys 文件,授予 600 权限(注意:此处权限必须是 600):

chmod 600 /root/.ssh/authorized_keys

如果已经有了 authorized_keys 文件,这直接执行以下的密钥追加工作。

将上面生成的公钥 id_rsa.pub 追加到 authorized_keys 文件中:

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

如下图所示,注意图中红色箭头处,是 >> 而不是 >,双尖括号 >> 表示像向文件中追加:
单尖括号 > 表示将文件内容全部替换掉;也就是说使用单尖括号 >,authorized_keys 文件里面如果原来有内容的话就全部不在了。

测试是否成功

ssh root@ip

若可直接登录 就完成了免密登录

如果此时想让其他人也免密登录 可以把本地的 id_rsa 文件拷贝给别人 执行命令

ssh -i id_rsa root@ip 

也是可以免密链接
当然 要记得修改服务器上的 sshd 配置 把允许秘钥登录打开
编辑配置文件

 vim /etc/ssh/sshd_config

将其中几个参数配置改为以下配置

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

重启 ssh 配置生效

service sshd restart

秘钥登录#

有两种 但也要注意 要打开 允许秘钥登录的配置

  • 1. 就是上文免密登录中的最后,利用 私钥登录

  • 2. 从服务器下载

    [username@host ~]$ cd ~/.ssh

    [username@host ~]$ ssh-keygen // 一路回车

    [username@host ~]$ cat id_rsa.pub >> authorized_keys

    [username@host ~]$ chmod 600 authorized_keys

    [username@host ~]$ chmod 700 ~/.ssh

    // 下载私钥

    [local@host ~]$ sudo scp -i USERNAME@HOST /usr/USERNAME/.ssh/id_rsa /LOCAL_PATH/id_rsa

    // 测试秘钥登录

    sudo ssh USERNAME@HOST -i /LOCAL_PATH/id_rsa

禁止密码登录#

服务器修改配置

    vim /etc/ssh/sshd_config

    PasswordAuthentication no #修改之前一定要确认你的秘钥可以正常使用

重启 ssh 生效

    service ssh restart

本作品采用《CC 协议》,转载必须注明作者和本文链接
安静的美男子
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

如果此时想让其他人也免密登录 可以把本地的 id_rsa 文件拷贝给别人 执行命令

本地的 id_rsa 私钥文件是应当绝对保密的!绝对不应该分发给他人的。

6年前 评论
panda-sir

直接把别人的公钥加入到 ./ssh/authorized_keys 文件 就行了

6年前 评论