171014openssh-server

本文介绍了如何使用SSH进行远程登录及其实现方法,并详细解释了如何生成公钥私钥对来增强安全性。此外,还提供了提升openssh-server安全性的多种配置方案。

openssh-server

(远程主机:[root@station ~]172.25.254.1,被远程主机:[root@server1 ~]172.25.254.101)

功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell

客户端连接方式:ssh    远程主机用户@远程主机ip

[root@station Desktop]# ssh root@172.25.254.101

The authenticity of host '172.25.254.101 (172.25.254.101)' can't be established.
ECDSA key fingerprint is 8c:6d:89:99:61:05:85:fc:d3:cd:84:01:19:6c:55:30.
Are you sure you want to continue connecting (yes/no)? yes                      #连接陌生主机时需要建立认证关系
Warning: Permanently added '172.25.254.101' (ECDSA) to the list of known hosts.
root@172.25.254.101's password:                                                                  #远程用户密码
Last login: Thu Oct 19 10:44:55 2017 from 172.25.254.1

[root@server1 ~]#                                                                                                 #登陆成功

可以用CTRL+d退出登陆

特殊用法:

1、ssh 远程主机用户@远程主机ip -X                                                                      #调用远程主机图形工具

测试:连接上之后可使用gedit命令打开一个文件

            tip:gedit命令可用于在桌面上打开一个文件,详见下图中的文字

2、ssh     远程主机用户@远程主机ip        command        #直接在远程主机运行某条命令

测试:

[root@station Desktop]# ssh root@172.25.254.101 touch 111
 root@172.25.254.101's password:           

在被远程的机器中查看,有多出来111这个新文件:

[root@server1 ~]# ls 111              Desktop    Downloads             Music     Public     Videos
 anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
sshkey加密:

生成公钥私钥

[root@server1 ~]# ssh-keygen                                                 #生成公钥私钥工具
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [enter]        #加密字符保存文件(建议用默认)
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):                     #如果你在生成密钥时设置了密语,之后客户端登陆还需要此处输入的密语.如果没有输入密语,可直接登入系统

                                                    #密钥密码,必须>4个字符
Enter same passphrase again:                          #确认密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
 2e:83:f5:84:82:bf:1a:0b:83:36:37:20:d0:39:2b:01 root@server1 

The key's randomart image is:
+--[ RSA 2048]----+
|E                |
|.. .             |
|o +              |
|.. +   .         |
|o.o . o S        |
|o... + +         |
|+o.oo o o        |
|.ooo.. o         |
|  o..            |
+-----------------+
[root@server1 ~]# ls /root/.ssh/
id_rsa             #私钥,就是钥匙

id_rsa.pub     #公钥,就是锁

添加key认证方式
[root@server1 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.101
ssh-copy-id                     ##添加key认证方式的工具
-i                                        ##指定加密key文件
/root/.ssh/id_rsa.pub    ##加密key
root                                   ##加密用户为root
172.25.254.101             ##被加密主机ip

tip:这条命可以生成authorized_keys将id_rsa.pub中的内容加到/root/.ssh/authorized_keys文件中,如果今后遇到这样的报错:/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed使用cat id_rsa.pub >> authorized_keys说不定可以解决。

分发钥匙给client主机

[root@server1 .ssh]# scp /root/.ssh/id_rsa root@172.25.254.1:/root/.ssh/

[root@server1 ~]# vim /etc/ssh/sshd_config

78 PasswordAuthentication yes
#将yes改为no表示不用密码登陆,用key密匙就可免密码登陆
[root@server1 ~]# systemctl restart sshd

重启服务

测试

[root@station .ssh]# ssh root@172.25.254.101
Last login: Thu Oct 19 12:26:20 2017 from 172.25.254.1
[root@server1 ~]#                                       #通过id_rsa直接连接不需要输入用户密码

提升openssh的安全级别

1.openssh-server配置文件
/etc/ssh/sshd_config
78 PasswordAuthentication yes|no        ##是否开启用户密码认证,yes为支持no为关闭
48 PermitRootLogin yes|no                     ##是否允许超级用户登陆
49 AllowUsers student westos               ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell
50 DenyUsers westos                              ##用户黑名单
2.控制ssh客户端访问
vim /etc/hosts.deny
sshd:ALL                     ##拒绝所有人链接sshd服务
vim /etc/hosts.allow
sshd:172.25.254.1    ##允许1主机链接sshd
sshd:172.25.254.250, 172.25.254.1    ##允许250和1链接
sshd:ALL EXCEPT 172.25.254.201        ##只不允许201链接sshd
3.ssh登陆提示修改该
vim /etc/motd        ##显示登陆后字符
hello world        ##在登陆后就会显示这个字符

[root@station .ssh]# ssh root@172.25.254.101
Last login: Thu Oct 19 12:52:15 2017 from 172.25.254.1
hello word
[root@server1 ~]#

<think>嗯,用户想知道openssh-serveropenssh-client的区别和应用场景。首先,我需要回忆一下这两个软件包的作用。根据之前提供的引用内容,openssh-server是服务端,而openssh-client是客户端。服务端的配置文件是/etc/ssh/sshd_config,客户端的则是/etc/ssh/ssh_config。服务端负责监听连接请求,而客户端用来发起连接。 接下来,我应该详细说明两者的核心功能。比如,openssh-server包含sshd服务,它持续运行在后台,等待客户端的连接。而openssh-client则提供了ssh、scp、sftp等工具,让用户能连接到远程服务器或者传输文件。应用场景的话,服务器需要安装openssh-server来允许远程访问,而个人电脑安装openssh-client用于连接其他服务器。 用户可能还关心如何安装和配置这两个包。根据引用,安装服务端可能需要sudo apt install openssh-server,客户端则是sudo apt install openssh-client。配置方面,服务端的配置文件需要调整端口、禁用root登录等安全设置,而客户端配置通常较少,除非有代理或密钥设置。 另外,用户可能想知道什么时候需要同时安装两者。比如,开发环境既作为服务器又需要连接其他服务器的情况。这时候两个包都需要安装。同时,安全注意事项也很重要,比如服务端需要定期更新,使用密钥认证,而客户端则需管理好私钥。 可能用户还有更深层次的需求,比如如何启动服务,或者如何处理安装中的问题,比如离线安装。但根据问题,主要聚焦在区别和应用场景,所以需要保持回答简洁明了,结构清晰。最后,生成的相关问题应该引导用户进一步了解配置、安全优化或故障排查。</think>### OpenSSH-ServerOpenSSH-Client 功能区别及应用场景 #### 一、核心功能区别 1. **OpenSSH-Server** - **用途**: 提供 SSH 服务端功能,允许远程主机通过 SSH 协议连接到当前设备。 - **关键组件**: - `sshd` 服务:监听默认端口 22,处理 SSH 连接请求[^3] - 配置文件:`/etc/ssh/sshd_config`(控制服务端行为,如端口、密钥验证方式等)[^1] - **典型场景**: - 服务器需要被远程管理时(如 Linux 云主机) - 需要提供 SFTP 文件传输服务 2. **OpenSSH-Client** - **用途**: 提供 SSH 客户端工具,用于发起 SSH 连接或文件传输。 - **关键组件**: - `ssh` 命令:建立加密终端会话 - `scp/sftp` 命令:安全文件传输 - 配置文件:`/etc/ssh/ssh_config`(客户端连接参数配置)[^1] - **典型场景**: - 从个人电脑连接远程服务器(如 `ssh user@example.com`) - 本地与服务器之间传输文件(如 `scp file.txt user@example.com:/path`) #### 二、部署关系示意图 ```plaintext +----------------+ SSH协议加密通道 +-------------------+ | 客户端设备 | ------------------------------> | 服务器设备 | | (OpenSSH-Client)| <------------------------------ | (OpenSSH-Server) | +----------------+ +-------------------+ ``` #### 三、安装与配置差异 | 特性 | OpenSSH-Server | OpenSSH-Client | |--------------------|------------------------------------|------------------------------------| | **安装命令** | `sudo apt install openssh-server` | `sudo apt install openssh-client` | | **服务管理** | `systemctl start/enable ssh` | 无需服务,直接使用命令行工具 | | **安全配置重点** | 禁用密码登录、修改默认端口 | 管理密钥对、配置代理跳转 | #### 四、应用场景对比 1. **需安装 Server 的情况** - Web 服务器需要远程维护 - 提供 Git 仓库的 SSH 访问 - 集群节点间需要 SSH 互信通信 2. **仅需 Client 的情况** - 开发机连接测试环境 - 从本地同步日志文件到桌面 - 通过 SSH 隧道访问内网资源 3. **同时安装的场景** - 开发用 PC 既作为跳板机又需要连接其他服务器 - 容器镜像中同时包含服务端和客户端工具 #### 五、安全注意事项 1. **服务端必须配置**: - 禁止 root 直接登录:`PermitRootLogin no` - 启用密钥认证:`PasswordAuthentication no` - 定期更新:`sudo apt upgrade openssh-server` 2. **客户端最佳实践**: - 使用 `ssh-keygen -t ed25519` 生成高强度密钥 - 通过 `~/.ssh/config` 管理多主机配置 - 避免在公共网络使用未加密的 SSH 代理
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值