SSH 免密码/免用户名/免IP登录云服务器实践
前往 韦世东的技术专栏 收获爬虫架构/爬虫逆向/存储引擎/消息队列/Python/Golang相关知识
SSH 是 Secure Shell 的缩写,耿直地翻译过来可以称作安全外壳协议。我们可以借助 SSH 协议连接到远程服务器并完成身份校验操作,也就是说使用了 SSH 密钥进行身份验证可以免去每次都输入密码的繁琐操作,同时账户安全性也得到大幅提高。
以 Centos 为例,SSH 默认存放在 ~/.ssh
目录下,我们可以通过 $cd ~/.ssh && ls
组合命令查看目录下存放的 SSH 密钥文件。如果目录下什么文件都没有代表服务器未生成 SSH 密钥,否则你将会看到类似 id_rsa
和 id_rsa.pub
这样的文件。
生成 SSH 密钥
业内工程师通常会使用非对称算法 RSA 来生成一对密钥——公钥和私钥,在终端输入以下命令:
ssh-keygen -t rsa -C "vansenb@foxmail.com"
参数 -t
和 -C
并非必填项,但我们可以借助它们来指定生成时候使用的算法(RSA)和个人标识(邮箱)。ssh-keygen
的完整含义是 ssh key generating
,也就是生成 SSH 键(密钥)。输入上方命令并回车,终端会给出如下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
第一行是提醒我们正在生成一对密钥;第二行则是让我们选择密钥存放的文件路径,通常我们都会选择使用默认路径,此时不用输入任何路径,直接回车即可;回车后终端给出如下提示:
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:
SHA256:/k7eBzEwIUHIjh0osGBEkoRMLKKbCV4XzyhHJ3ffsj0 vansenb@foxmail.com
The key's randomart image is:
+---[RSA 3072]----+
|%O o o+... |
|O+. .++o oo |
|= ..+O.. .o. |
|o o.+oo oo. |
|o+. + S +o |
|+. . ..E |
| . . .. |
| + . . |
| .+ .. |
+----[SHA256]-----+
从提示中我们可以看到密钥存放的文件路径,默认情况下公钥和私钥都存放在 ~/.ssh
目录下,这也是为什么一开始我们要去 ~/.ssh
目录下查看密钥文件的原因。
免密登录
通常情况下,我们会用 ssh username@ip
命令登录服务器,执行命令后终端会提示我们输入密码。更好的做法是借助 SSH 密钥帮助我们验证身份,直接省去输入密码的步骤。
前面学会了如何生成 SSH 密钥,接下来我们将学习如何实现云服务器的免密登录。首先按照上面的介绍在自己的计算机上生成密钥对,并复制公钥文件 ~/.ssh/id_rsa.pub
中的内容(可以用 cat ~/.ssh/id_rsa.pub
命令查看公钥文件内容),也就是下面一长串
ssh-rsa AAAA ... ... 5ztuiXs= vansenb@foxmail.com
从 ssh-rsa
开始,直到个人标识结束,全部复制。
接下来到目标服务器(也就是你想要免密登录的云服务器,假设云服务器的公网 IP 是 10.1.1.1)上操作。在云服务器的 ~/.ssh
目录下新建一个名为 authorized_keys
的文件,并将刚才复制的你的个人计算机生成的公钥字符串写入到 authorized_keys
中。如果你使用的是 vim 编辑器,那么命令如下:
$ cd ~/.ssh
$ vim authorized_keys
使用 vim 编辑器打开文件后按 i
键进入编辑模式,使用键盘快捷键 Ctr V
粘贴刚才复制的公钥字符串。接着按 ESC
键进入 vim 编辑器的命令行模式,输入 :wq
并回车。此时你计算机中的公钥已经在云服务器上存放了一份,当你需要登录的时候,只需要输入:
ssh root@10.1.1.1
然后按下回车即可,如果是第一次登录到这台云服务器,终端会提示:
The authenticity of host '10.1.1.1 (10.1.1.1)' can't be established.
ECDSA key fingerprint is SHA256:nGvmS+JKzQf1gG+Nzc0QN/qS6xSp1iV0rJFP1dILel4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
这时候我们输入 yes
并回车即可。回车之后终端给出了新的提示:
Warning: Permanently added '10.1.1.1' (ECDSA) to the list of known hosts.
Last login: Wed Dec 23 21:43:28 2020 from 111.94.33.65Welcome to Cloud Elastic Compute Service ![root@iZ1nmehZ ~]#
这代表我们不需要输入密码即可通过 SSH 协议连接远端服务器了,免密登录成功!
免密登录失败
有些服务器中的 sshd
服务配置并未开启公钥登录选项,如果上面的 ssh root@10.1.1.1
回车后终端显示的不是云服务器相关信息,而是输入密码的话,就需要我们到云服务器上开启 sshd
服务的公钥登录配置。
在云服务器上执行 $ vim /etc/ssh/sshd_config
命令,进入到 sshd
配置文件后找到 PubkeyAuthentication
项,删除该项的注释符 #
并确保该项对应的开关为 yes
。错误的配置和正确的配置如下:
#PubkeyAuthentication no # -> 错误的配置PubkeyAuthentication yes # -> 正确的配置
一顿操作猛如虎,操作完之后重新启动 sshd
服务,重启命令为 service sshd restart
。
这时候再在个人计算机中执行 ssh root@10.1.1.1
命令,就不会让你输入密码了,免密登录成功!
当然,除了用个人计算机连接云服务器之外,云服务器与云服务器之间也可以这么配置。
免用户名和 IP 登录
虽然我们省去了输入密码的步骤,不过用户名和 IP 地址也不短。如果想要省略用户名和 IP 地址,可以通过配置 ~/.ssh/config
实现。默认情况下 ~/.ssh
目录下是没有 config
文件的。我们可以通过 $ vim ~/.ssh/config
创建。接着写入以下配置信息:
Host s-crawl
HostName 10.1.1.1
Port 22
User root
IdentityFile ~/.ssh/id_rsa
其中 Host
代表云服务器昵称、HostName
为云服务器的公网 IP 地址、Port
代表连接时使用的端口号、User
代表连接时选用的用户名、IdentityFile
代表本地私钥文件的路径。配置完成后退出编辑器,这时候我们就可以用云服务器昵称登录云服务器啦,在终端输入 $ ssh s-crawl
即可。
在拥有多台服务器后,你就能感受到这种登录方式是多么的便捷,运维同学已经习以为常了呢!
SSH 免密码/免用户名/免IP登录云服务器实践相关推荐
- SSH 免密码/免用户名/免IP登录云服务器
转载自公众号:NightTeam 使用 SSH 密钥进行身份验证可以免去每次都输入密码的繁琐操作,同时账户安全性也得到大幅提高. 图片 以 Centos 为例,SSH 默认存放在 ~/.ssh 目录下 ...
- Win10下用SCP命令免密码上传、下载阿里云服务器上的文件
需求: 需要定时把阿里云服务器上的数据备份文件下载到本地备份,所以需要在本地win10系统上定时执行从阿里云服务器上下载备份文件的操作. 环境和工具 本地win10系统及自带的SCP工具,工具目录:C ...
- 手机服务器密码在什么位置,手机远程云服务器登录密码是什么
手机远程云服务器登录密码是什么 内容精选 换一换 只有运行中的云服务器云主机才允许用户登录.Windows操作系统用户名"Administrator".首次登录云耀云服务器,请先通 ...
- 华为云linux用户名,玩转华为云服务器ECS:001 如何登录并创建新用户
本篇教程的主要内容: 准备的工具: putty 如果你一开始没有设置ECS的密码,或者想修改ECS的密码,可点击屏幕的右下方的"忘记云服务器登陆密码"的"重置密码&quo ...
- 华为虚拟服务器密码忘记怎么办,登录云服务器密码忘记了怎么办
登录云服务器密码忘记了怎么办 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 登 ...
- 云服务器修改密码无法登录,云服务器修改登录密码
云服务器修改登录密码 内容精选 换一换 Linux云服务器常用的登录方式是SSH,对于密码登录方式创建的云服务器,如何保证登录安全性呢?本文以CentOS 7.6为例,对SSH登录进行安全加固.通过S ...
- MobaXterm中修改服务器ip,如何使用mobaxterm登录云服务器
如何使用mobaxterm登录云服务器 内容精选 换一换 本节介绍如何查看云服务器的mac地址.云服务器的mac地址不支持修改.登录Linux云服务器.执行以下命令,查看云服务器的mac地址.ifco ...
- 运维——ssh无法登录云服务器
0x00 概述 一般来讲,无法登录ssh的原因挺多,如果无法登录云服务器,则除了要检查ssh端口是否放行,防火墙状态外,还需要检查云服务器web控制台入站规则是否开放了对应端口.如果你前面检查都是正常 ...
- 云原生——上云必读之SSH篇(常用于远程登录云服务器)
" 文章通过通俗易懂的方式,介绍了SSH相关基本概念,有助于读者快速了解SSH." 传统网络服务程序缺点 传统网络服务程序(ftp/pop/telnet)在网络上用明文传送口令和 ...
- 网站服务器 凭证,登录云服务器的凭证是什么
登录云服务器的凭证是什么 内容精选 换一换 检查头显是否连接到平台并获取可连接GPU服务器的EIP.检查云服务器安全组是否放通对应端口.如果云服务器状态由"闲置"变为"正 ...
最新文章
- 深入掌握JMS(一):JMS基础
- NIPS改名为NeurIPS的原因
- 记一次网站部署遇到的问题
- POJ3322滚箱子游戏(不错)
- 小白学统计(4)——数据集中趋势的描述
- 2017年流行的字体排版大全
- 计算机基础access数据库操作题,2021年3月全国计算机等级考试二级Access数据库程序设计题库及答案讲解...
- ES6------Set结构
- mysql 压缩备份_备份压缩mysql 数据库
- SpringMVC@RequestMapping请求方法限定与请求参数限定
- mysql 的 select into 带来的错误数据问题
- C++17特性一览(转载)
- MyBatis概述与架构
- gstream初次尝试
- 前端电子时钟字体引入
- 网络编程-网路七层协议图
- windows生产力提升-装机必备
- 【GDScript】保存/加载物品装备数据
- 《Ray Tracing in One Weekend》笔记 - 【Chapter 9】:Dielectrics
- PAT A1034 Head of a Gang (30 分)