1.ssh
ssh认证方式主要有2种:
01.基于口令的安全认证:
02.基于密钥的安全认证
加密-认证(authentication)和授权(authorization
SSH 的软件架构是服务器-客户端模式(Server - Client)
向服务器发出请求的部分,称为客户端(client),OpenSSH 的实现为 ssh;
OpenSSH 的客户端是二进制程序 ssh。它在 Linux/Unix 系统的位置是/usr/local/bin/ssh,
C:WindowsSystem32OpenSSHssh.exe
Windows 系统的位置是C:Program FilesOpenSSHinssh.exe
接收客户端发出的请求的部分,称为服务器(server),OpenSSH 的实现为 sshd
2.基于密钥的安全认证
1.检查windows中是否
安装ssh 以及 ssh-keygen 以及scp
C:Users >ssh -V
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
2.window下免密的设置
001.windows 下操作
win + r
cmd
# 生成密钥
ssh-keygen -t rsa (选择默认)
# 将文件拷贝至远程服务器
scp id_rsa.pub 用户名@ip地址:~/.ssh/windows_id_rsa.pub
002.Linux上的操作
cd ~/.ssh
# 将内容追加到authorized_keys文件中
cat windows_id_rsa.pub >> authorized_keys
注意:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
3.验证
windows下验证
ssh 用户名@ip地址
其他:
也可以本地id_rsa.pub文件的内容拷贝至远程服务器的~/.ssh/authorized_keys文件
3.ssh-keygen 命名
ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥.
在 Linux/macOS 系统中,ssh-keygen 随 SSH 软件包提供
ssh-keygen:需要依靠密匙,
必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上
-t即指定密钥的类型,密钥的类型有两种,一种是RSA,一种是DSA
ssh-keygen默认使用rsa密钥,所以不加-t rsa也行,如果你想生成dsa密钥,就需要加参数-t dsa
-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。
命令中的4096指的是RSA密钥长度为4096位。
DSA密钥必须恰好是1024位
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。
-o
-o Causes ssh-keygen to save private keys
using the new OpenSSH format rather than the more compatible PEM format.
The new format has increased resistance to brute-force password cracking
but is not supported by versions of OpenSSH prior to 6.5.
Ed25519 keys always use the new private key format.
4.git中使用
Git 服务器都使用 SSH 公钥进行认证
01.生成 id_rsa.pub 文件,将id_rsa.pub添加到页面的配置上
02.SSH key 进入页面添加 SSH key。最右上角头像--setting--SSH Keys
03.点击 Add SSH key 按钮添加一个 SSH key 。
把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车
5.相关配置文件和服务
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现
openssh 的客户端:ssh openssh的服务端:sshd
sudo vim /etc/ssh/sshd_config
/etc/ssh/sshd_config
用户个人的配置文件在~/.ssh/config 优先级高于全局配置那文件
systemctl daemon-reload
systemctl restart sshd
systemctl status sshd
其他加密
gen-ken参数生成自己的密钥。 RSA DSA
gpg --gen-key
C:WindowsSystem32driversetc