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 协议》,转载必须注明作者和本文链接
安静的美男子
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

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

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

5年前 评论
panda-sir

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

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!