OPENSSH服务器

一、理论概念

1.OPENSSH概念

OpenSSH是SSH(Secure Shell)协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明 文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据, 并由此来代替原来的类似服务。目前OpenSSHOpenBSD的子项目

2.OPENSSH工作原理
  • 服务器端开启SSH服务,在端口22监听客户端请求
  • 客户端发出请求,如果是第一次与服务器建立连接,服务器端会向客户端发送一个rsa key
  • 客户端接收到服务器端发送过来的rsa key后,就会采用与服务器端协商好的加密算法,生成会话密钥(此会话 密钥用于加密客户端与服务器端之间的会话),并用rsa key加密会话密钥,并发送给服务器端
  • 服务器端就用对应的私钥解密已加密的会话密钥,然后用此会话密钥加密确认信息,发送给客户端。客户端 用会话密钥解密加密的确认信息,到此,密钥交换成功和服务器认证成功
3.OPENSSH协议

SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。
SSH1协议:由单个协议提供密钥交换、身份认证与加密的功能
SSH2协议:

  • 传输层协议(主要提供密钥交换与服务器端认证功能)
  • 认证协议(主要提供密钥交换与服务器端认证功能)
  • 连接协议(主要提供远程执行命令功能)
4.OPENSSH端口:TCP 22
5.OPENSSH常用客户端工具

     SecureCRT
     Xshell
     Xmanager
     MobaXterm

6.DROPBEAR

Dropbear是一个相对较小的SSH服务器和客户端。是另一款ssh协议的开源实现
它类似SSH,实现完整的SSH客户端和服务器版本2协议。
但它不支持SSH版本1,以节省空间和资源,并避免在 SSH版本1的固有的安全漏洞。
它支持scp。

二、OPENSSH服务安装配置

服务端IP:192.168.192.133
客户端IP:192.168.192.223
未配置前,每次服务端登录客户端都要输入密码

1.关闭防火墙和Selinux
    [root@mail ~]# systemctl stop firewalld
    [root@mail ~]# setenforce 0
2.安装OPENSSH服务器
    [root@mail ~]# yum install openssh-server -y
3.OPENSSH服务器、客户端的配置文件
  1. /etc/ssh/sshd_config #服务端配置文件!!!
  2. /etc/ssh/ssh_config #客户端配置文件!!!
4.OPENSSH基于密钥的认证(仅限于双管理员用户或单管理员到普通用户)
服务端:
    [root@mail ~]# cd .ssh/
    [root@mail .ssh]# ls
    id_rsa  id_rsa.pub
    [root@mail .ssh]# ssh-keygen                #普通主机 
    Generating public/private rsa key pair.        
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    /root/.ssh/id_rsa already exists.
    Overwrite (y/n)? 
    [root@mail .ssh]# ls
    id_rsa  id_rsa.pub
    [root@mail .ssh]# cat id_rsa.pub > authorized_keys            #此种方式 针对多台主机时,采用此方式较好 
    [root@mail .ssh]# ls
    authorized_keys  id_rsa  id_rsa.pub
    [root@mail .ssh]# scp authorized_keys 192.168.192.223:/root/.ssh/               #此种方式 针对多台主机时,采用此方式较好 
    The authenticity of host '192.168.192.223 (192.168.192.223)' can't be established.
    ECDSA key fingerprint is SHA256:ZUnrgOjaa1LqFlxTcgwFQesY6GyOVXGtxZrsHtVmNdU.
    ECDSA key fingerprint is MD5:3e:60:cf:7b:1d:8c:c7:45:5a:42:33:dc:43:da:4b:05.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.192.223' (ECDSA) to the list of known hosts.
    root@192.168.192.223's password: 
    authorized_keys                               100%  400   472.2KB/s   00:00    
    [root@mail .ssh]# ssh root@192.168.192.223
    Last login: Tue Dec  4 02:32:04 2018 from 192.168.192.133
    [root@c66 ~]#
  #此时登录客户端192.168.192.223的管理员用户不需要输入密码,但客户端登录服务端的管理员用户需要密码
客户端:
    [root@c66 ~]# ls .ssh/
    authorized_keys
    [root@c66 ~]# ssh root@192.168.192.133
    The authenticity of host '192.168.192.133 (192.168.192.133)' can't be established.
    ECDSA key fingerprint is HA256:jsndQ04TKiKB3GM9c62DO5Cg6SjSzLo+pAyVRGNexCE.
    ECDSA key fingerprint is MD5:d5:fb:ef:5c:56:28:52:6f:81:ce:8c:58:17:83:de:9b.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.192.133' (ECDSA) to the list of known hosts.
    root@192.168.192.133's password: 
    Last login: Mon Dec  3 18:22:43 2018 from 192.168.192.223
    [root@mail ~]# 
5.OPENSSH基于口令的认证(双管理员或双普通用户,或普通用户登录管理员用户,或管理员用户登录普通用户)
服务端操作:
    [root@mail ~]# useradd user3
    [root@mail ~]# passwd user3
    Changing password for user user3.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.    


客户端操作:
    [root@c66 ~]# useradd user4
    [root@c66 ~]# passwd user4
    Changing password for user user4.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    
测试:
    [root@mail ~]# su - user3
    Last login: Mon Dec  3 18:47:42 CST 2018 on pts/0
    [user3@mail ~]$ ls -a
    .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc
    [user3@mail ~]$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user3/.ssh/id_rsa): 
    Created directory '/home/user3/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/user3/.ssh/id_rsa.
    Your public key has been saved in /home/user3/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:JixBP8imSmUXmNDIrnsVSR6+p0blYRvb6G3wtIxwHxw user3@mail.cc74.com
    The key's randomart image is:
    +---[RSA 2048]----+
    |..+ +.           |
    | o *oo.          |
    |.  *=+o          |
    | .oo*o=.E        |
    |... .*oOS.       |
    |o.  =.Oo=        |
    |.. o * O o       |
    |. . o o B        |
    | . .   .         |
    +----[SHA256]-----+
    [user3@mail ~]$ ls -a
    .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .ssh
    #ssh-copy-id会自动把公钥放到 要访问的服务器的.ssh/authorized_keys 并且保证权限为600
    [user3@mail ~]$ ssh-copy-id user4@192.168.192.223        
    /bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user3/.ssh/id_rsa.pub"
    The authenticity of host '192.168.192.223 (192.168.192.223)' can't be established.
    ECDSA key fingerprint is SHA256:ZUnrgOjaa1LqFlxTcgwFQesY6GyOVXGtxZrsHtVmNdU.
    ECDSA key fingerprint is MD5:3e:60:cf:7b:1d:8c:c7:45:5a:42:33:dc:43:da:4b:05.
    Are you sure you want to continue connecting (yes/no)? yes
    /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are  already installed
    /bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    user4@192.168.192.223's password: 
    Number of key(s) added: 1
    Now try logging into the machine, with:   "ssh 'user4@192.168.192.223'"
    and check to make sure that only the key(s) you wanted were added.    
    [user3@mail ~]$ ssh user4@192.168.192.223
    [user4@c66 ~]$
    [root@c66 ~]# ls -a /home/user4/
    .  ..  .bash_logout  .bash_profile  .bashrc  .ssh

#其余的测试就不写出来啦

<think>好的,用户之前询问了远程控制电脑的方式和操作流程,现在他们想了解OpenSSH服务器。我需要先回顾之前的对话,确保回答的一致性。用户可能对命令行工具有兴趣,尤其是SSH,所以需要详细说明OpenSSH服务器的安装、配置和使用步骤。 首先,用户可能是技术人员或系统管理员,因为他们问的是OpenSSH服务器,而不仅仅是普通远程控制工具。我需要解释清楚OpenSSH的基本概念,强调它的安全性和在服务器管理中的应用。 接下来,要覆盖Windows和Linux/macOS的安装方法,因为用户可能使用不同系统。在Windows部分,需要提到启用可选功能,而在Linux上则是包管理器安装。需要注意不同发行版的命令差异,比如Ubuntu用apt,CentOS用yum。 配置部分,需要指导用户修改sshd_config文件,比如更改端口、禁用root登录,这些是常见的安全措施。同时,要提醒用户重启服务和应用防火墙规则,确保配置生效。 连接示例部分,要展示基本命令,包括指定端口和密钥登录,这对用户实际使用很有帮助。安全性注意事项是关键,必须强调密钥认证、防火墙和日志监控的重要性,避免用户配置不当导致的安全风险。 最后,常见问题解答可以解决用户可能遇到的连接问题,比如端口、防火墙、服务状态。需要给出具体的检查命令,帮助用户快速排查问题。 总结起来,回答需要结构清晰,步骤详细,同时兼顾不同操作系统的用户,强调安全性和实际应用场景,确保用户能安全高效地使用OpenSSH服务器。</think>### OpenSSH 服务器简介及配置指南 **OpenSSH**(Open Secure Shell)是一种基于SSH协议的开源工具,用于通过加密通道安全访问和管理远程计算机。它广泛用于 **Linux/Unix服务器**、**macOS** 和 **Windows 10及以上系统**,支持命令行操作、文件传输和端口转发。 --- #### 一、核心功能 1. **安全远程登录** - 通过 `ssh` 命令登录远程服务器,替代明文传输的Telnet。 2. **文件传输** - 使用 `scp` 或 `sftp` 加密传输文件。 3. **端口转发** - 建立加密隧道,保护其他协议(如HTTP、数据库)的通信。 4. **密钥认证** - 用公私钥替代密码登录,提升安全性。 --- #### 二、安装与启用(以常见系统为例) ##### 1. **Windows 系统** - **安装OpenSSH服务器**: - 打开“设置” → “应用” → “可选功能” → 点击“添加功能” → 勾选 **OpenSSH 服务器** → 安装。 - **启动服务**: - 以管理员身份运行PowerShell,输入: ```powershell Start-Service sshd # 启动服务 Set-Service sshd -StartupType Automatic # 设置开机自启 ``` ##### 2. **Linux/macOS 系统** - **安装命令**(以Ubuntu为例): ```bash sudo apt update sudo apt install openssh-server ``` - **启动服务**: ```bash sudo systemctl start ssh # 临时启动 sudo systemctl enable ssh # 开机自启 ``` --- #### 三、配置OpenSSH服务器 1. **修改配置文件** - 配置文件路径:`/etc/ssh/sshd_config`(Linux/macOS)或 `C:\ProgramData\ssh\sshd_config`(Windows)。 - **常用配置项**: ```bash Port 2222 # 修改默认端口(避免22端口被扫描) PermitRootLogin no # 禁止root用户直接登录 PasswordAuthentication no # 禁用密码登录(仅允许密钥) AllowUsers user1 user2 # 仅允许特定用户登录 ``` 2. **应用配置** - 重启SSH服务生效: ```bash sudo systemctl restart sshd # Linux/macOS Restart-Service sshd # Windows PowerShell ``` 3. **防火墙设置** - 开放SSH端口(默认22或自定义端口): ```bash sudo ufw allow 22/tcp # Ubuntu firewall-cmd --add-port=22/tcp --permanent # CentOS ``` --- #### 四、连接示例 1. **基础登录** ```bash ssh 用户名@远程IP -p 端口号 # 示例:ssh admin@192.168.1.100 -p 2222 ``` 2. **密钥认证(更安全)** - 生成密钥对(本地执行): ```bash ssh-keygen -t ed25519 # 默认保存到 ~/.ssh/id_ed25519 ``` - 上传公钥到服务器: ```bash ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户@远程IP ``` --- #### 五、安全性注意事项 1. **禁用弱加密算法** - 在 `sshd_config` 中追加: ```bash Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com KexAlgorithms curve25519-sha256 ``` 2. **限制访问IP** - 使用防火墙规则仅允许特定IP访问SSH端口。 3. **监控日志** - 检查登录失败记录(路径:`/var/log/auth.log`(Linux)或 事件查看器(Windows))。 --- #### 六、常见问题 1. **连接被拒绝** - 检查SSH服务是否运行:`systemctl status sshd`。 - 确认防火墙未拦截端口。 2. **密钥登录失败** - 确保服务器 `~/.ssh/authorized_keys` 文件权限为 `600`。 3. **Windows 配置失败** - 检查 `sshd_config` 语法:在PowerShell运行 `sshd -T`。 --- ### 总结 OpenSSH服务器是 **服务器管理、自动化运维** 的核心工具,通过密钥认证和严格配置可大幅提升安全性。如需图形化操作,可结合 `X11转发` 或使用 `WinSCP`(Windows)等工具辅助文件传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值