ssh服务笔记

client ------- server

一、交互过程

客户端首次登录server,需要下载服务器的公钥到本地。后续再次登录就不需要了。

但是后续登录需要客户端会使用服务器的公钥加密发个消息给服务器,服务器能有正确的私钥解密再返回

就说明服务器的公钥没改变。不会报错。

服务器的公钥存放目录:

/etc/ssh/

ssh_config ---- 本身作为客户端的配置文件

sshd_config ---- 本身作为服务器的配置文件

修改sshd_config ----的port 端口。默认的22 端口更容易被攻破

0

0

0

二、常见选项

如果每次不想下载服务器的公钥,可以修改客户端的配置文件

0

cat ssh_config 配置文件

0

0

0

验证登录失败的前十名

0

注: lastb ----- /var/log/btmp 该指令会自动读取该文件,该文件为二进制文件,无法直接查看。

记录登录失败的主机

常见ssh 选项:

-o StrictHostKeyChecking=no 无需使用者输入yes no 直接下载服务器的公钥

-t remoteaddress 用于多层跳转

-l 用户名 ssh -l root 1.1.1.1

还有一个常用,如何在将本地主机的脚本 在远端主机执行,使用反向重定向 ssh 10.1.1.1 bash test2.sh

-x 使用x11 协议,能将远程的服务器 图形软件 通过x11 协议呈现在本地client

本机IP 为client ceph-node03 是server ,装了firefox ,mobaxterm 默认转了x forward 组件。xshell 则需要安装xshell

0

export DISPLAY=192.168.177.1:0.0 ----- IP为本机地址 0.0 表示给他窗口

0

三、ssh登录验证方式

ssh 服务登录的常用验证方式

用户/口令

基于密钥

基于用户和口令登录验证

0

0

基于密钥的登录方式

0

client 将自己的公钥推送到 服务器的 .ssh/authorized_keys

0

client 生成公钥私钥对 是基于用户的,不是基于主机的。

0

只要 基于key的 ssh 登录方式,只要私钥给到任何主机,任何主机都可以免密登录。

因此需要对私钥进行加密

ssh-keygen -p

输入密码

虽然这种方式提高了安全性,但是现在每次登录需要输入 私钥的密码,还是不利于自动化维护

所以可以在client 端用验证代理

代理程序 不会生成记录私钥密码,也是个临时程序。

四、ssh 的本地端口转发

ssh本地端口转发:保护某些无法被加密的协议,用ssh 协议进行封装转发,例如下文中的http 被封装在ssh内

client【177.20】 ---【ssh 【http】】----- ssh server【177.21】 ----【telnet】--- real server【177.22】【httpd / telnet 服务】

client

453 ssh -fNL 9572:192.168.177.22:80 192.168.177.21 //开启本地client 9572 侦听端口,只要发送给本机发送到本机的9572 端口

就会进行ssh 本地转发,先转发到192.168.177.21 [ssh链接] ,到了177.21 后进行解封装路由到 177.22

ssh -fgNL 9572:192.168.177.22:80 192.168.177.21 //如果需要让其他client 转发,可以在本client 加入-g 参数,表示本client 所有IP的9572 端口都开启侦听

455 ss -tnl // 使能上诉指令后,本地会出现侦听 9572 端口配置

461 在client 执行curl 127.0.0.1:9572

五、ssh的远端端口转发

用于外网无法主动访问内网的资源。

因此从内网访问外网 进行ssh 远端端口转发功能实现,实现未加密的协议在ssh 封装后的数据传输

SSH 远端端口转发,用于网关功能实现,实现其他client 能够通过本client访问到内部服务器

0

0

六、SSH 动态端口转发

实现科学上网

0

ssh -D 端口 远端主机

在ssh client【linux 系统】 配置

执行后,需要在本机的client 浏览器配置代理

0

0

上述的图 ssh client 和 ssh server VPS 需要有两台linux 成本较高,需要将两台设备合二为一

0

在server vps 执行

ssh -D -fNG 9527 10.0.0.18

然后国内网的 window、linux 浏览器都配置代理指向10.0.0.18 9527 端口

但是这种方法会导致访问国内国外网站都走到代理,因此实际有很多软件专门做这些事项,比如

socketshell【ss】、clash

七、SSH 配置文件解读

服务器端:sshd

服务器端的配置文件:/etc/ssh/sshd_config

服务器端的配置文件帮助:man sshd_config

0

对maxSessions 解析 一条ssh连接后,可以复制会话,最多10条会话。

连接可以使用 ss -tnp 查看

MaxAuthTries 6 默认超过6的二分之一 认证尝试就会断开连接。

useDNS yes === 经常改为no,提升连接速度,避免ssh 将连接IP 解析成域名

GSSAPIAuthentication yes === 也是经常改为no,提高访问连接速度

八、ssh 工具解读

sshfs 可以通过ssh 将远端的机子 目录 挂载到本地

sshpass 可以实现填充密码登录

echo huawei@123 | passwd --stdin magedu

sshpass -p huawei@123 ssh -o StrictHostKeyChecking=no 1.1.1.1

//注意sshpass 需将远端服务器的公钥下载下来,否则将登录失败。

因此需要加入 -o StrictHostKeyChecking

或者使用环境变量导入

SSHPASS=huawei@123

sshpass -e ssh -o StrictHostKeyChecking=no 1.1.1.1 hostname -I

范例:批量部署多台主机基于key验证

0

范例:批量修改多台主机的root 密码为随机密码

0

轻量级自动化运维工具pssh[无需写脚本,大白话:【脚本都帮忙写好了】]

EPEL 源中提供了多个自动化运维工具:

pssh:基于python 编写,可在多台服务器上执行命令的工具,也可实现文件复制,提供了

基于ssh和scp的多个并行工具,项目:http://code.google.com/p/parallel-ssh/,Centos8 上目前没提供

pdsh:Parallel remote shell program,是一个多线程远程shell 客户端,可以并行执行多个远程主机上的命令。

可使用几种不同的远程shell 服务,包括rsh,kerberos IV 和 ssh,

项目:https://pdsh.goolgecode.com

mussh:multihost ssh wrapper,是一个shell 脚本,允许使用命令在多个主机上通过ssh 执行命令,可使用ssh-agent和RSA、DSA 密钥,以减少

输入密码,项目:http://www/sourceforge.net/projects/mussh

九、dropbear

因为openssh 对服务器的硬件配置规格比较高,有些小型设备无法承载,openssh功能对于小型设备来说

过于臃肿。

dropbear 比较轻巧。另外一个实现ssh 功能的开源项目。

由Matt johnston 所开发的secure shell 软件。dropbear 是一个相对较小的ssh 服务器和客户端。

它运行在一个基于POSIX 的各种平台。dropbear 是开源软件,在麻省理工学院式的许可证。dropbear 是

特别有用的嵌入式linux系统,如无线路由器,期望在存储器与运算能力有限的情况下取代openssh,尤其是嵌入式系统。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值