ssh 免密码连接服务器

2021/4/24 18:56:09

本文主要是介绍ssh 免密码连接服务器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

    • 闲话
    • 准备
    • 生成密钥
    • 服务器配置
      • 把公钥放在服务器
      • 把公钥写入authorized_keys
      • 修改配置文件开启密钥验证
      • 设置权限
    • 结束,ssh测试一下

闲话

因为咱一开始连服务器都是手动ssh连的,xshell那个软件用了一下就没用过,还不是免费,所以也没打算用它。于是每次连服务器的时候都是cmd打开,ssh输入一长段命令然后回车再输入一长串密码,好麻烦。

前几天捣鼓vsc的时候注意到左侧栏第五个远程资源管理器,然后百度了下,捣鼓了下发现挺好用的,不用输入那么多东西了,但是还要输密码

然后又发现了可以通过自己的密钥实现免密码连接,捣鼓了下,舒服了

不过现在服务器还没建图床,md文件里面的图片不太好传,就只记一下密钥实现免密码连接吧,应该不怎么需要图片。

准备

1.ssh

2.好像没了?

本地和服务器都要安装ssh,这些东西的安装方法百度一大堆,就不说了,服务器那边当然也要开启ssh的服务和22端口,上面百度到的里面应该也有讲,略过

生成密钥

首先,如果本地还没连过服务器的话,建议先手动ssh连一下服务器,存一下服务器的公钥什么的,之后设置known_hosts就不用设置了。(本博文不提供known_hosts设置方法 其实主要是因为咱也没搞懂这块

打开命令行,输入

ssh-keygen

然后三个回车,完事。其中第一个回车确认的是生成密钥公钥的存放位置,第二个是设定密码,第三个是确认密码,默认是空,也就是没密码,如果输入了,之后每次连似乎还是要输密码,当然也更安全,不过我这种小用户也不用太过担心。所以我全是默认。

C:\Users\W8362>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\W8362/.ssh/id_rsa):
Created directory 'C:\Users\W8362/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\W8362/.ssh/id_rsa.
Your public key has been saved in C:\Users\W8362/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

类似于上面这样
linux的默认路径是/home/schacon/.ssh/id_rsa

完了之后去默认目录下就能看到了,其中私钥是保存在自己这边;公钥,也就是后缀是.pub的文件是保存在服务器那边,具体的待会讲

服务器配置

把公钥放在服务器

就是本地那个路径下生成的.pub的那个文件,随便怎么放过去(scp?),随便放在哪,不过反正我放在了.ssh文件夹下面,方便之后操作(我上传过去顺便改名成my_pc_id_rsa.pub)

# ls ~/.ssh
authorized_keys  my_pc_id_rsa.pub

把公钥写入authorized_keys

随便怎么写入,咱是这样写的

cat my_pc_id_rsa.pub >> authorized_keys

修改配置文件开启密钥验证

编辑配置文件

vim /etc/ssh/sshd_config

有就修改,没有就加,把这几项修改成这样:(善用查找指令)

AddressFamily inet
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication yes

PermitRootLogin 、 PubkeyAuthentication 这两项是要修改成yes,PermitRootLogin 是允许root用户认证登录,而PubkeyAuthentication 是启用公钥认证。AuthorizedKeysFile是公钥路径,生成的。最后把PasswordAuthentication yes就允许密码登录,保存重启ssh服务。

设置权限

ssh目录的权限700;

ssh/authorized_keys文件权限600;

chmod 600 authorized_keys
cd .. && chmod 700 -R .ssh

结束,ssh测试一下

# ssh root@**.**.**.**
Last login: Sat Apr 24 17:23:37 2021 from **.**.**.**

Welcome to Alibaba Cloud Elastic Compute Service !      

顺带一提,vsc里面配置远程资源管理器也挺简单的,安装插件Remote - SSH,再设置一下

Host ali_cloud  (随便起)
    HostName **.**.**.**
    User root

就好了

以上



这篇关于ssh 免密码连接服务器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程