SSH密钥生成及登录
公钥与私钥
公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥加密又称非对称加密。私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。****公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。****使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
特点:
1.公开的密钥叫公钥,只有自己知道的叫私钥
2.用公钥加密的数据只有对应的私钥可以解密
3.用私钥加密的数据只有对应的公钥可以解密
4.如果可以用公钥解密,则必然是对应的私钥加的密
5.如果可以用私钥解密,则必然是对应的公钥加的密
6.公钥和私钥是相对的,两者本身并没有规定哪一个必须是公钥或私钥。
SSH密钥登录的原理
初次登录:
非初次登录
SSH密钥对生成
命令详解
ssh-keygen [选项]
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型。
密钥对生成
ssh-keygen -t rsa
一路回车
此命令会生成一对密钥,其中id_rsa
为私钥文件,id_rsa.pub
为公钥文件。
文件位置:
windows:C:\Users\[当前用户名]\.ssh
linux:~/.ssh
Linux配置密钥免密登录
配置密钥
首先应该将上面生成的公钥弄到被登录服务器的~/.ssh/
下,
ssh-copy-id -i [客户端公钥位置] [服务器用户名]@][服务器ip]
,这条命令会自动将密钥文件放在 ~/.ssh
下并命名为authorized_keys
。
windows的终端,比如:cmd、powershell没有这条命令。大家可以用Git自带的GitBash或者其他ssh终端软件。
为了避免后期文件权限问题,建议上面命令中的用户名和你要ssh登录的用户名一致。
ps:.
开头的文件在linux中是隐藏文件,可通过ll
命令查看。
配置SSH,打开密钥登陆功能
编辑 /etc/ssh/sshd_config 文件,进行如下设置(没有的项在后面追加):
RSAAuthentication yes
PubkeyAuthentication yes
另外,请留意 root 用户能否通过 SSH 登录:
PermitRootLogin yes
当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录(这项忽略也无伤大雅):
PasswordAuthentication no
最后,重启 SSH 服务:
service sshd restart
客户端以密钥方式登录
SSH客户端种类繁多,细节繁杂,这里不再赘述。相信各位对自己使用的SSH客户端一定了如执掌。
Python实现SSH远程操作
如果您乐意,感谢支持~
SSH密钥生成及登录相关推荐
- 转载 :配置ssh密钥认证自动登录
原文地址 :https://segmentfault.com/a/1190000000481249 在客户端来看,SSH提供两种级别的安全验证.[摘自wikipedia] 第一种级别(基于密码的安全验 ...
- ssh 密钥生成及免密错误记录
CentOS7 ssh 密钥生成及免密错误记录 生成密钥 ssh-keygen -t rsa 与要免密访问的节点连接,复制密钥到对应的节点 ssh-copy-id -i .ssh/id_rsa.pub ...
- 用PuTTY SSH 密钥生成工具puttygen.exe生成密钥.
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 生成的密钥类 ...
- Mac使用ssh密钥登录Linux
ssh登录Linux通常有两种方法:用户名密码登录.用户名密钥登录:使用用户名密码登录每次都要输入密码,相当麻烦,而使用用户名密钥登录则可以避免这个问题. 创建密钥对文件 打开本地终端,执行 ssh- ...
- ssh-keygen生成git ssh密钥
SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户名和密 ...
- 通过ssh-keygen命令生成SSH密钥
在GitHub.GitLab等代码托管平台上,通常在克隆仓库的时候,会提供ssh协议的链接.ssh协议链接的好处是只要在平台上配置好SSH密钥,就可以直接克隆当前账号下的所有仓库,而不用输入账号和密码 ...
- git 查看自己秘钥_gitlab配置ssh密钥及简单使用
演示环境:当前系统Centos6.9,使用IP192.168.0.80 修改gitlab仓库地址 编辑gitlab.yml文件 vim /opt/gitlab/embedded/service/git ...
- ssh密钥-帮助文档
SSH密钥 Git 是一个分布式版本控制系统,这意味着您可以在本地工作. 此外,您还可以将更改共享或"推送"到其他服务器. GitCode 支持使用 SSH 密钥在 Git 及其服 ...
- ubuntu ssh密钥_生成SSH密钥以在Ubuntu中进行无密码登录
ubuntu ssh密钥 SSH (Secure Shell) is a cryptographic network protocol which is used for establishing s ...
最新文章
- 004_Maven构建生命周期
- 台湾印象之五:宝岛万象
- linux中权限的名词解释,Linux的基本权限和特殊权限
- Eraser unused space 失败的原因分析!
- 信息学奥赛一本通(1047:判断能否被3,5,7整除)
- 字节跳动实验室招聘户型图理解实习生|北京
- linux服务器安装gmt,linux 安装GMT详解 (zhuan)
- jp在java中无法编译_为什么我的JAVA程序无法编译呢?
- Hbase协处理器实践总结(hbase数据同步)
- 统计学权威盘点过去50年最重要的统计学思想,因果推理、bootstrap等上榜,Judea Pearl点赞
- 端口监听 端口通信(Socket,ServerSocket)
- 【打印机】连接共享打印机找不到网络路径解决方案
- 后盾网div+css,css定位(后盾网)
- 一句话告诉您什么是运维?以及如何运维才能事半功倍?
- Linux下手动安装screen
- Centos7安装JDK【FinalShell终端本地文件上传失败解决办法】
- Java连接sqlserver数据库,并进行增删改查操作
- stream銆俠oxed_电脑关机时显示OX100672ed指令引用的OX0000000C内存,该内存不能为written是什么意思...
- 流畅稳定免费的LinuxMint20.1桌面系统安装调试讲解
- QQ音乐JS逆向爬虫,我用python全都爬!
热门文章
- 【译】【PyOpenGL教程-介绍着色器】 漫反射、环境光、平行光
- python orange3汉化_Python 3.5 in win10 pip install Orange3
- Tableau导入shp文件会显示与数据源通信时出错解决方法
- 9. MySQL -- JDBC入门
- 批量更改图片格式(png改为rgb)
- VS2005 到 VS2010 的使用习惯和注意事项
- 设计模式 | 工厂方法模式(Factory Method)
- 智能电话机器人核心技术:ASR
- 基于51单片机的简单LCD1602时钟
- google谷歌云盘_Google舞蹈综合症