Linux远程连接(SSH)

SSH简介

ssh服务是一个守护进程(demon),系统后台监听客户端的链接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。web

  1. ssh-keygen
  • 简介
    ssh-keygen 可用来生成ssh公钥认证所需的公钥和私钥文件。通常是在~/.ssh 目录下执行该命令,若是是想把密钥统一管理则能够自定义目录,之因此放在目录 ~/.ssh下是由于该目录为用户私有目录,root用户之外的人是看不到的。默认生成私钥文件名id_rsa,公钥文件id_rsa.pub。
    备注:rsa是一种非对称加密算法,aes是一种对称加密算法
  • ssh-keygen实例
    (1):不带任何参数
    在这里插入图片描述
    解释:
    A: 直接输入ssh-keygen命令,不带任何参数,默认使用rsa非对称加密
    B:输入自定义文件名,若是直接回车则生成默认文件名rsa rsa.pub
    C:対生成的私钥文件加密,最少五位,直接回车则默认不加密
    D:确认C处输入的密码
    E:图中输入了自定义文件名test,因此这里生成了连个文件test私钥,test.pub公钥
    备注:ssh-keygen有不少带参数的生成方式,具体能够查看其它资料了解。
  1. ssh-copy-id
  • 简介
    ssh-copy-id - 将你的公共密钥填充到一个远程机器上的authorized_keys文件中(即:本地执行该命令,能够把刚大生成的公钥文件内容提取出来,发送到远程主机的authorized_keys文件中,而后本地链接工具就能够用本身的私钥关联去免密登录远程主机)。
  • 实例
    1:指定公钥文件发送到远程主机 在这里插入图片描述
    解释:
    A: 将本地公钥发送至远程主机。格式: ssh-copy-id -i 公钥文件名 远程主机用户名@远程主机地址
    B:直接yes便可
    C:输入远程主机用户名所对应的密码
    D:大功告成
  1. 非免密登录原理简介

非免密远程登陆流程图
1.远程Server收到Client端用户TopGun的登陆请求,Server把本身的公钥发给用户。
2.Client使用这个公钥,将密码进行加密。
3.Client将加密的密码发送给Server端。
4.远程Server用本身的私钥,解密登陆密码,而后验证其合法性。
5.若验证结果,给Client相应的响应。算法

  1. 免密登录原理简介
    在这里插入图片描述 1.Client将本身的公钥存放在Server上,追加在文件authorized_keys中。 2.Server端接收到Client的链接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密获得pubKey®,而后将加密后信息发送给Client。 3.Client端经过私钥进行解密获得随机数R,而后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。 4.Server端会也会对R和SessionKey利用一样摘要算法生成Digest2。 5.Server端会最后比较Digest1和Digest2是否相同,完成认证过程。