Open Lanttcat opened 5 years ago
关于ssh-keygen -t 参数:是选择key的类型,目前OpenSSH给出了四种选择: dsa | ecdsa | ed25519 | rsa
表示算法不懂,简单汇总
rsa:非对称加密算法,基于极其困难的大整数的分解 dsa:非对称加密算法,用于数字签名 ecdsa:ECDSA是ECC与DSA的结合,和椭圆曲线算法有关 ed25519:数字签名算法,签名和验证的性能都极高,看到这里,卒。
Google了好久~
SSH 密钥对总是成双出现的,一把公钥,一把私钥。公钥可以自由的放在您所需要连接的 SSH 服务器上,而私钥必须稳妥的保管好。
所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录 shell,不再要求密码。这样子,我们即可保证了整个登录过程的安全,也不会受到中间人攻击。
中间人攻击
关于ssh端口的问题,已经在Linux上怎么配置与开启 OpenSSH config相关文档
vi /etc/ssh/sshd_config
更改Port 22
然后重启service sshd restart
部署CI持续集成,执行ssh的时候,遇到了一些问题,本着记录一点的精神,全面的了解一下ssh吧。
大体历史
Version1.x
1995年,芬兰赫尔辛基科技大学的研究员TatuYlönen设计了第一个版本的协议(现称为SSH-1),这个版本是在他的大学时通过密码嗅探攻击提出的。SSH的目标是取代早期的rlogin,TELNET,ftp和rsh协议,这些协议不提供强认证,也不保证机密性。
Version2.x
“Secsh”是负责SSH协议版本2的IETF工作组的官方Internet工程任务组(IETF)名称。2006年,该协议的修订版本SSH-2被采纳为标准。此版本与SSH-1不兼容。SSH-2具有SSH-1的安全性,并且有其他功能改进。
Version1.99
在2006年1月,在版本2.1建立之后,RFC 4253指定支持2。这不是一个实际版本,而是一种识别向后兼容性的方法。
OpenSSH and OSSH
1999年,想要一个免费软件版本的开发人员回到原始SSH程序的旧版本1.2.12,这是最后一个在开源许可下发布的版本。BjörnGrönvall的OSSH是从这个代码库开发的。此后不久,OpenBSD开发人员分享了Grönvall的代码,并对其进行了大量的工作,创建了OpenSSH,随OpenBSD 2.6版一起发布。从这个版本开始,形成了一个“可移植性”分支,将OpenSSH移植到其他操作系统。 截至2005年,OpenSSH是最受欢迎的单一SSH实现,默认情况下会出现在大量操作系统中。OSSH已经过时。OpenSSH继续得到维护并支持SSH-2协议。 OpenSSH在7.6 release版本彻底删除了对ssh version版本的支持
好吧,我承认,以上转载至,翻译了维基百科的百度百科。
两种级别的安全验证
第一种级别(基于口令的安全验证) 第二种级别(基于密匙的安全验证)
OpenSSH
OpenSSH是使用SSH协议进行远程登录的首选工具。它会加密所有流量,以防止窃听,连接劫持和其他攻击。此外,OpenSSH还提供大量安全隧道功能,多种身份验证方法和复杂的配置选项。 OpenSSH包含以下工具(其实就是一些命令):
其大概的原理(图片来自https://www.ssh.com/):
使用
OpenSSH分为openssh-client和openssh-server Ubuntu的安装说明
从几个常见的场景,看看这几个命令的使用:
GitHub 与 ssh-keygen
这是一个非常常见的场景,这里有个Github官方文档,生成新的SSH key。 这里主要有两个问题:
ssh-agent
ssh代理程序,使用场景如下:
使用方式:
有两种方式可以启动一个ssh代理:
ssh-agent -s
,-s可选,指定shell类型,也可以是别的类型,例如-c,这个命令直接启动了一个ssh-agent进程。ssh-add
adds private key identities to the authentication agent
ssh-keysign
ssh helper program for host-based authentication
ssh-keyscan
gather SSH public keys
sshd
sshd会开启一个后台进程,以监听来自客户端的请求,它可以通过命令行或者配置文件配置。
scp
命令格式:
具体命令见文档 注意source ... target,顺序的调整,可以帮我们完成从server到client和才client到server 的转换。 source或者targert的路径格式:
遇到过的问题:
Permission denied