SSH开启私钥连接

发布于 2020-04-28  46 次阅读


引子

开启私钥登录后,能够增加ssh安全性,重要服务器应该使用私钥来进行登录。至于加密方法和原理,我会在论匿名与加密系列文章中写出。这里是开启私钥登录的方法。

修改端口

为了高一些的安全性,避免有意之人利用,还是建议修改端口。至于怎么改,请查看关于Centos 7修改SSH端口其它系统步骤类似。你也可以阅读openssh的文档以及对应发行版的Wiki。

制作密钥对

PS:你可以使用已有密钥对。直接将其上传到服务器并安装。

ssh-keygen #生成密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
#保存密钥对的文件位置以及名称,默认即可,直接按下回车
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
#设置一个密码保护私钥,这样有了私钥还要知道对应的密码才能使用,回车可留空,无密码登录
Enter same passphrase again: #确认密码,再输一遍,回车可留空
Your identification has been saved in /root/.ssh/id_rsa. #私钥位置
Your public key has been saved in /root/.ssh/id_rsa.pub. #公钥位置
The key fingerprint is:
xxxxxxx #指纹

安装公钥

cd .ssh
cat id_rsa.pub >> authorized_keys

修改文件权限。在非root登录时或其它情况下确保能够登录。

chmod 600 authorized_keys
chmod 700 ~/.ssh

启用密钥登录

vi /etc/ssh/sshd_config #你也可以用nano

PubkeyAuthentication yes //启用密钥登录
PermitRootLogin yes //允许root登录

重启SSH服务

systemctl restart sshd.service

现在把私钥下载到本地,然后使用私钥登录即可。如果你使用xshell可以按照lrzsz来传输,也可以利用sftp来传输。

在Linux下你还需要为私钥修改文件权限,确保非root用户能够使用

后续工作

关闭密码登录

vi /etc/ssh/sshd_config

PasswordAuthentication no //禁用密码,确定能用密钥登录了再改

再次重启SSH服务

systemctl restart sshd.service


长风破浪会有时,直挂云帆济沧海。在这条路上一直走下去!