为什么要使用privateKey登录 SSH 服务器?
我们平时登录Linux服务器的时候,经常是使用用户名和密码进行登录,但是如果我们要使用它进行代码连接或者其他操作的情况下,我们需要一种更为安全的方式进行登录,就需要privateKey登录 SSH 服务器
SSH 登录简介
- RSA 非对称加密
- 在 SSH 登录时可以使用 RSA 密钥登录
- 使用工具ssh-keygen可以创建 SSH 密钥
如何创建?
服务器生成密钥对(ubuntu)
进入 Linux 系统目录下 .ssh 目录
cd ~/.ssh/
此时看到报错-bash: cd: /root/.ssh/: 没有那个文件或目录
[root@localhost ~]# cd ~/.ssh/
-bash: cd: /root/.ssh/: 没有那个文件或目录
解决报错
执行
ssh localhost
报错解决,大功告成~
执行 ls 命令,我们可以看到此时目录
执行 ssh-keygen 创建密钥对
执行密钥生成命令,回车~
执行过程中可以选择是否输入秘钥密码,也可以选择不需要密码哦~直接回车
ssh-keygen -t rsa
命令生成之后,查看一下
id_rsa id_rsa.pub known_hosts
SSH 服务器配置(ubuntu)
我们发现目录下没有 authorized_keys,我们创建一个
touch authorized_keys
将 id_rsa.pub 文件的内容输出到 authorized_keys
cat id_rsa.pub >> authorized_keys
远程访问测试
以windows电脑为例,我们访问一下我们是否可以通过privateKey登录 SSH 服务器
将 id_rsa 私钥拷贝到 Windows电脑上面,然后进入私钥所在目录,执行命令:
ssh -i .\id_rsa root@192.168.33.129
再次发现异常,The authenticity of host ‘XXX’ can’t be established.
PS C:\Users\Administrator\Desktop\fsdownload> ssh -i .\id_rsa root@192.168.33.129
The authenticity of host '192.168.33.129 (192.168.33.129)' can't be established.
ECDSA key fingerprint is SHA256:dw6kUF1VDfJ9WXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.33.129' (ECDSA) to the list of known hosts.
分析
原因在于每次远程登录Linux的时候,Linux都要检查一下,当前访问的计算机公钥是不是在~/.ssh/know_hosts中,这个文件时OpenSSH记录的。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。简单所下它的三种配置值:
- 1.StrictHostKeyChecking=no 最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。
- 2.StrictHostKeyChecking=ask 默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。
- 3.StrictHostKeyChecking=yes 最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。
解决
我们用下面的命令登录
ssh -i .\id_rsa -o StrictHostKeyChecking=no root@192.168.33.129
还有一种彻底去掉SSH主机验证的方法,就是修改/etc/ssh/ssh_config配置文件,在ssh_config配置文件中添加:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
大功告成~
今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢文章来源:https://www.toymoban.com/news/detail-613747.html
文章来源地址https://www.toymoban.com/news/detail-613747.html
欢迎路过的小哥哥小姐姐们提出更好的意见哇~~
到了这里,关于手把手图文并茂教你创建并使用私钥privateKey登录 SSH 服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!