大体流程:本地生成秘钥=>将秘钥上传至服务器

本地电脑生成秘钥

ssh-keygen -t rsa -C "邮箱地址 例:*****.@163.com"

一路回车即可,所有都默认就可以生成秘钥,引号内是唯一邮箱,可以作为以后Git远程仓库使用。结果如下图。

mm-1

生成之后,查看生成后的公钥和私钥

ls ~/.ssh

可以看到有两个文件:id_rsa(私钥)、id_rsa.pub(公钥)

登录远程服务器

查看 ~ 目录下是否有 .ssh 目录,~目录 指的是当前用户的主目录名 (/home/用户名)

ls -al ~

如果没有 .ssh 可以创建该目录

mkdir -p ~/.ssh

或者 可以执行下面的命令 按照提示输入yes 再输入密码即可,.ssh 目录是用来存储 本台机器ssh访问其他服务器信息的,没有访问其他机器是没有.ssh 目录的

ssh localhost

上传生成的公钥

将刚刚生成的公钥上传至服务器的 ~/.ssh 目录下

在本地 使用 scp 命令 : scp 需要发送的文件路径 目标路径

将本地生成的公钥 放到服务器用户主目录下的.ssh目录里 并命名为 authorized_keys

scp ~/.ssh/id_rsa.pub 用户名@服务器ip地址:/用户主目录名/.ssh/authorized_keys

这样就完成了 再次登录服务器就不需要输入密码了。

设置禁用密码登录

sudo vim /etc/ssh/sshd_config
# 禁止密码登录。原先为PasswordAuthentication yes
PasswordAuthentication no

# 禁止 root 登录,看情况是否需要。原先为PermitRootLogin yes
PermitRootLogin no

重启sshd服务

service restart sshd.service