Linux远程链接(SSH)

SSH简介

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

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

Linux远程链接(SSH)
1.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。
2.Client使用这个公钥,将密码进行加密。
3.Client将加密的密码发送给Server端。
4.远程Server用自己的私钥,解密登录密码,然后验证其合法性。
5.若验证结果,给Client相应的响应。

  1. 免密登陆原理简介
    Linux远程链接(SSH)
    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是否相同,完成认证过程。