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

2019-01-25 03:08:57   Linux

  unbuntu16.04   免密登录   秘钥登录   禁止密码登录  

免密登录

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

步骤一

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

  1. ssh-keygen -t rsa

进入以下目录

  1. /Users/USERNAME/.ssh

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

步骤二

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

  1. 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文件,如果没有的话则执行以下命令创建:

  1. touch authorized_keys

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

  1. chmod 600 /root/.ssh/authorized_keys

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

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

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

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

测试是否成功

  1. ssh root@ip

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

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

  1. ssh -i id_rsa root@ip

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

  1. vim /etc/ssh/sshd_config

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

  1. RSAAuthentication yes
  2. PubkeyAuthentication yes
  3. AuthorizedKeysFile %h/.ssh/authorized_keys

重启ssh配置生效

  1. service ssh restart

秘钥登录

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

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

  • 2.从服务器下载

  1. [username@host ~]$ cd ~/.ssh
  2. [username@host ~]$ ssh-keygen // 一路回车
  3. [username@host ~]$ cat id_rsa.pub >> authorized_keys
  4. [username@host ~]$ chmod 600 authorized_keys
  5. [username@host ~]$ chmod 700 ~/.ssh
  6. // 下载私钥
  7. [local@host ~]$ sudo scp -i USERNAME@HOST /usr/USERNAME/.ssh/id_rsa /LOCAL_PATH/id_rsa
  8. // 测试秘钥登录
  9. sudo ssh USERNAME@HOST -i /LOCAL_PATH/id_rsa

禁止密码登录

服务器修改配置

  1. vim /etc/ssh/sshd_config
  2. PasswordAuthentication no #修改之前一定要确认你的秘钥可以正常使用

重启ssh生效

  1. service ssh restart

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

感谢你的支持,我会继续努力!
扫码打赏,建议金额1-10元