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 ssh 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

王浩的博客

你可能感兴趣的:(unbuntu16.04 服务器的 免密登录、秘钥登录和禁止密码登录 配置)