SSH免密登录

1.ssh

ssh认证方式主要有2种:
 01.基于口令的安全认证:
 02.基于密钥的安全认证
加密-认证(authentication)和授权(authorization
 SSH 的软件架构是服务器-客户端模式(Server - Client)
  向服务器发出请求的部分,称为客户端(client),OpenSSH 的实现为 ssh;
    OpenSSH 的客户端是二进制程序 ssh。它在 Linux/Unix 系统的位置是/usr/local/bin/ssh,
	C:\Windows\System32\OpenSSH\ssh.exe
	Windows 系统的位置是C:\Program Files\OpenSSH\bin\ssh.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:\Windows\System32\drivers\etc
posted @ 2021-06-23 14:47  辰令  阅读(138)  评论(0编辑  收藏  举报