SSH

本文深入讲解了SSH(Secure Shell)的安全远程登录协议,包括其工作原理、登陆方式、配置文件及常用命令。SSH通过加密机制确保远程连接的安全,支持用户名密码登陆和基于密钥的登录。文章还详细介绍了客户端与服务器的配置参数,以及如何使用ssh、scp和sftp命令进行远程操作。
摘要由CSDN通过智能技术生成
  1. ssh简介

    • 英文名:Secure Shell(安全协议外壳)
    • 概述:ssh是专为远程登陆会话和其他网络服务提供安全性的协议
    • 默认端口:22,安全协议版本sshv2(sshv1有漏洞)
    • ssh服务端功能: ssh远程链接和sftp服务
    • 实际用途:远程安全连接linux服务器
  2. 什么是ssh服务:SSH服务端是一个守护讲程,SSH服务端的进程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理。ssh客户端包含ssh以及像scp(远程拷贝) slogin(远程登陆) sftp(安全FTP文件传输)等应用程序。

  3. ssh的工作机制:本地的ssh客户端先发送一个连接请求到远程的ssh服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给 SSH的客户端,此时,客户端本地再将密钥发回给服务端,自此连接建立。

  4. SSH登陆方式

    • 用户名密码登陆
      • 当客户端发起ssh请求,服务器会把自己的公钥发送给用户;
      • 用户会根据服务器发来的公钥对密码进行加密;
      • 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功。
    • 基于密钥的登录
      • 将客户端的公钥拷贝到服务端;
      • 当客户端再次发送一个连接请求,包括ip、用户名;
      • 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer;
      • 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;
      • 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;
      • 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。
  5. ssh的配置文件:

    • 客户端配置文件:ssh_config
    • 服务器配置文件:sshd_config

    服务器推荐修改默认端口号

    命令参数参数说明
    Port指定sshd进程监听的端口号,默认为22.可以使用多条指令监听多个端口.默认将在本机的所有网络接口上监听,但是可以通过ListenAddress指走只在某个特定的接口上监听.
    AddressFamily地址家族,any表示同时监听ipv4和ipv6地址
    ListenAddress0.0.0.0 ==> 监听本机所有ipv4地址 :: ==>监听本机所有ipv6地址
    LoginGraceTime2m ==>限定用户认证时间为2min
    PermitRootLogin是否允许root账户ssh登录.默认no.
    MaxAuthTries指定每个连接最大允许的认证次数。默认值是 6
    MaxSessions最大允许保持多少个连接。默认值是 10
    Protocol2 ==> SSH版本选择。一代有漏洞故这里一般不考虑
    PermitEmptyPasswords是否允许密码为空的用户远程登录.默认为"no"
    PasswordAuthentication是否允许密码验证 默认 yes
    PubkeyAuthentication是否开启公钥验证 默认 yes
    UseDNS指定定sshd是否应该对远程主机名进行反向解折,以检查此主机名是否与其IP地址真实对应.默认值为"yes”.
  6. ssh命令:

    • 查看ssh版本 :$ ssh -V
    • 指定用户登陆:$ ssh username@ip
    • 指定端口登陆:$ ssh -p port username@ip
    • 远程主机1跳到远程主机2:$ ssh -t remoteserver1 ssh remoteserver2
  7. scp命令:

    • 上传本地文件到服务器: scp /path/filename username@ip:/path/
    • 上传本地文件夹到服务器: scp -r local_dir username@ip:remote_dir
    • 从服务器下载文件: scp username@ip:/path/filename /var/www/local_dir(本地目录)
    • 从服务器下载文件夹: scp -r username@servername:/www/remote_dir/(远程目录) /www/local_dir(本地目录)
  8. sftp命令:

    • 查看服务器资源: ls
    • 查看 本地资源: lls
    • 切换服务器目录: cd
    • 切换本地目录: lcd
    • 上传: put /path/filename / path(远程目录)
    • 下载: get /path/filename / path(本地目录)
    • 文件上传下载带 -r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值