公钥与私钥

公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥加密又称非对称加密。私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。****公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。****使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
特点:
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密钥生成及登录相关推荐

  1. 转载 :配置ssh密钥认证自动登录

    原文地址 :https://segmentfault.com/a/1190000000481249 在客户端来看,SSH提供两种级别的安全验证.[摘自wikipedia] 第一种级别(基于密码的安全验 ...

  2. ssh 密钥生成及免密错误记录

    CentOS7 ssh 密钥生成及免密错误记录 生成密钥 ssh-keygen -t rsa 与要免密访问的节点连接,复制密钥到对应的节点 ssh-copy-id -i .ssh/id_rsa.pub ...

  3. 用PuTTY SSH 密钥生成工具puttygen.exe生成密钥.

    <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  生成的密钥类 ...

  4. Mac使用ssh密钥登录Linux

    ssh登录Linux通常有两种方法:用户名密码登录.用户名密钥登录:使用用户名密码登录每次都要输入密码,相当麻烦,而使用用户名密钥登录则可以避免这个问题. 创建密钥对文件 打开本地终端,执行 ssh- ...

  5. ssh-keygen生成git ssh密钥

    SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户名和密 ...

  6. 通过ssh-keygen命令生成SSH密钥

    在GitHub.GitLab等代码托管平台上,通常在克隆仓库的时候,会提供ssh协议的链接.ssh协议链接的好处是只要在平台上配置好SSH密钥,就可以直接克隆当前账号下的所有仓库,而不用输入账号和密码 ...

  7. git 查看自己秘钥_gitlab配置ssh密钥及简单使用

    演示环境:当前系统Centos6.9,使用IP192.168.0.80 修改gitlab仓库地址 编辑gitlab.yml文件 vim /opt/gitlab/embedded/service/git ...

  8. ssh密钥-帮助文档

    SSH密钥 Git 是一个分布式版本控制系统,这意味着您可以在本地工作. 此外,您还可以将更改共享或"推送"到其他服务器. GitCode 支持使用 SSH 密钥在 Git 及其服 ...

  9. ubuntu ssh密钥_生成SSH密钥以在Ubuntu中进行无密码登录

    ubuntu ssh密钥 SSH (Secure Shell) is a cryptographic network protocol which is used for establishing s ...

最新文章

  1. 004_Maven构建生命周期
  2. 台湾印象之五:宝岛万象
  3. linux中权限的名词解释,Linux的基本权限和特殊权限
  4. Eraser unused space 失败的原因分析!
  5. 信息学奥赛一本通(1047:判断能否被3,5,7整除)
  6. 字节跳动实验室招聘户型图理解实习生|北京
  7. linux服务器安装gmt,linux 安装GMT详解 (zhuan)
  8. jp在java中无法编译_为什么我的JAVA程序无法编译呢?
  9. Hbase协处理器实践总结(hbase数据同步)
  10. 统计学权威盘点过去50年最重要的统计学思想,因果推理、bootstrap等上榜,Judea Pearl点赞
  11. 端口监听 端口通信(Socket,ServerSocket)
  12. 【打印机】连接共享打印机找不到网络路径解决方案
  13. 后盾网div+css,css定位(后盾网)
  14. 一句话告诉您什么是运维?以及如何运维才能事半功倍?
  15. Linux下手动安装screen
  16. Centos7安装JDK【FinalShell终端本地文件上传失败解决办法】
  17. Java连接sqlserver数据库,并进行增删改查操作
  18. stream銆俠oxed_电脑关机时显示OX100672ed指令引用的OX0000000C内存,该内存不能为written是什么意思...
  19. 流畅稳定免费的LinuxMint20.1桌面系统安装调试讲解
  20. QQ音乐JS逆向爬虫,我用python全都爬!

热门文章

  1. 【译】【PyOpenGL教程-介绍着色器】 漫反射、环境光、平行光
  2. python orange3汉化_Python 3.5 in win10 pip install Orange3
  3. Tableau导入shp文件会显示与数据源通信时出错解决方法
  4. 9. MySQL -- JDBC入门
  5. 批量更改图片格式(png改为rgb)
  6. VS2005 到 VS2010 的使用习惯和注意事项
  7. 设计模式 | 工厂方法模式(Factory Method)
  8. 智能电话机器人核心技术:ASR
  9. 基于51单片机的简单LCD1602时钟
  10. google谷歌云盘_Google舞蹈综合症