网站首页 > 博客文章 正文
- 什么是密钥(key)?
- 使用密钥登录远程服务器的过程原理
- 使用密钥登录远程服务器示例
- 如何避免每次登录服务器每次都输入密码?
1.什么是密钥?
密钥(key)是一种参数,通过加密算法得到的。用于明文和密文相互转换的的参数。密钥分为“对称密钥”和“非对称密钥”。
对称密钥:只有一把钥匙,加密和解密都是用这把钥匙
非对称密钥:有2把钥匙,一把公开的钥匙(公钥),一把秘密保存的钥匙(私钥),公钥和私钥是一一对应的。公钥是公开的可以对外发送,私钥必须私密保存,不能泄露。
2. 使用密钥登录远程服务器的过程原理
1. 生成密钥
2. 把公钥上传到远程服务器指定位置
3. 客户端向服务器发起登录请求
4. 服务器收到客户端的登录请求,服务端生成一个随机字符串然后使用公钥加密的结果发送给客户端,要求客户端证明自己的身份。
5. 客户端收到来自服务器的数据,使用私钥进行加密,然后再发送给服务器
6. 服务器收到客户端的加密签名后,使用公钥解密,然后和原始数据做对比,来完成认证过程(如果一致,就允许用户登录
3.使用密钥登录远程服务器示例
3.1. 生成密钥
3.2. 把公钥上传到远程服务器指定位置
3.3. 客户端向服务器发起登录请求
3.1. 生成密钥
ssh-keygen -b 位数 -t 加密算法[dsa或者rsa] -N 私钥文件的密码 -f 生成秘钥文件位置
ssh-keygen -b 4096 -t rsa -N 123 -f tenxun
# 示例
ssh-keygen -b 4096 -t rsa -N 123 -f tenxun 130 ? zhaowei@zhaoweideMBP
# 执行命令后如下显示
Generating public/private rsa key pair.
Your identification has been saved in tenxun.
Your public key has been saved in tenxun.pub.
+---[RSA 4096]----+
|B=O + o |
|.. o . . |
| |
+----[SHA256]-----+
3.2. 把公钥上传到远程服务器指定位置
使用 ssh-copy-id 命令把公钥上传到服务器 ”~/.ssh/authorized_keys“ 文件中,也可以自己手动拷贝到服务器 ”~/.ssh/authorized_keys“文件中,手动拷贝记得重启服务器。
# 可以不定公钥路径和.pub后缀名,ssh-copy-id 会自动在~/.ssh目录里面寻找
ssh-copy-id -i tenxun root@148.70.132.116
# 执行命令后如下显示
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "tenxun.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@148.70.132.116's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@148.70.132.116'"
and check to make sure that only the key(s) you wanted were added.
3.3. 客户端向服务器发起登录请求
# 执行命令后
ssh -i./tenxun root@148.70.132.116 zhaowei@zhaoweideMBP
Enter passphrase for key './tenxun':
# 输入私钥密码
Last login: Sat Aug 21 07:14:35 2021 from 175.152.148.247
4.如何避免每次登录服务器每次都输入密码?
私钥设置了密码以后,每次使用都必须输入密码,烦的一批。ssh-agent 命令就是了解决每次使用都输入密码,它让用户在整个对话(session)中,只在第一次使用ssh命令时输入密码,然后把私钥保存在内存中,后面使用都不需要私钥的密码了。
第1步 运行 ssh-agent 代理命令,执行命令后会在后台运行
第2步 添加 ssh-add 私钥
第3步 再次输入 ssh 命令登录 这个时候不用输入私钥密码就直接登录成功了
ssh-agent
ssh-add ~/.ssh/tenxun
ssh -i ./tenxun root@148.70.132.116
ssh-agent 130 ? zhaowei@zhaoweideMBP
# 执行命令后如下
SSH_AUTH_SOCK=/var/folders/ky/vcx6v0zs21dc4d4f4mc168jm0000gn/T//ssh-NHnCz48IVXdn/agent.52049; export SSH_AUTH_SOCK;
SSH_AGENT_PID=52050; export SSH_AGENT_PID;
echo Agent pid 52050;
ssh-add ~/.ssh/tenxun 1 ? zhaowei@zhaoweideMBP
# 执行命令后如下
Enter passphrase for /Users/zhaoweijie/.ssh/tenxun:
Identity added: /Users/zhaoweijie/.ssh/tenxun (zhaowei@zhaoweideMBP.lan)
# 再次输入命令 这个时候不用输入私钥密码就直接登录成功了
ssh -i ./tenxun root@148.70.132.116
猜你喜欢
- 2024-10-10 Nutch-Hadoop-MongoDB搭建分布式爬虫
- 2024-10-10 OpenSSH更新至8.0,修复存在35年的安全漏洞
- 2024-10-10 [python] 基于paramiko库操作远程服务器
- 2024-10-10 利用Zabbix监控系统SSH方式检测远程目标主机
- 2024-10-10 手工方式IPSec VPN配置保障单位与分支之间的数据安全
- 2024-10-10 SSH 简介:安全远程访问的利器(安全远程登录协议ssh)
- 2024-10-10 [ Laravel 5.6 文档 ] 快速入门 —— 重量级开发环境:Homestead
- 2024-10-10 快速上手:Docker环境下的WordPress安装全攻略
- 2024-10-10 阿里云服务器Centos7.3安装Git(阿里云服务器centos装桌面)
- 2024-10-10 C++开发:VSCode SSH访问远程服务器,编程、调试、运行C++代码
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 355℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 344℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)