securecrt克隆会话与sshd 的 MaxSessions

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS SQL Server,独享型 2核4GB
简介: 使用securecrt克隆会话时,原有会话连接的session数会自增。 例如 要使用ssh连接,sshd的MaxSessions必须>=1,默认是10。 如果把MaxSessions改成2,那么对同一个ssh连接,只能克隆1个,(克隆出来的ssh可以再克隆,但是对同一个会

使用securecrt克隆会话时,原有会话连接的session数会自增。

例如

screenshot

要使用ssh连接,sshd的MaxSessions必须>=1,默认是10。

如果把MaxSessions改成2,那么对同一个ssh连接,只能克隆1个,(克隆出来的ssh连接窗可以再克隆,但是对同一个连接窗只能克隆一个会话)

screenshot

/var/log/secure中的报错

sshd[11318]: error: no more sessions

代码
新建的会话,消耗一个session计数,如果在当前会话中新建会话,就会继续消耗当前会话的会话数。
如果消耗的会话数大于设置的maxsessions,则报错。
openssh session.c

Session *
session_new(void)
{
        Session *s, *tmp;

        if (sessions_first_unused == -1) {
                if (sessions_nalloc >= options.max_sessions)
                        return NULL;
                debug2("%s: allocate (allocated %d max %d)",
                    __func__, sessions_nalloc, options.max_sessions);
                tmp = xrealloc(sessions, sessions_nalloc + 1,
                    sizeof(*sessions));
                if (tmp == NULL) {
                        error("%s: cannot allocate %d sessions",
                            __func__, sessions_nalloc + 1);
                        return NULL;
                }
                sessions = tmp;
                session_unused(sessions_nalloc++);
        }

        if (sessions_first_unused >= sessions_nalloc ||
            sessions_first_unused < 0) {
                fatal("%s: insane first_unused %d max %d nalloc %d",
                    __func__, sessions_first_unused, options.max_sessions,
                    sessions_nalloc);
        }

        s = &sessions[sessions_first_unused];
        if (s->used) {
                fatal("%s: session %d already used",
                    __func__, sessions_first_unused);
        }
        sessions_first_unused = s->next_unused;
        s->used = 1;
        s->next_unused = -1;
        debug("session_new: session %d", s->self);

        return s;
}


/*
 * Prepares for an interactive session.  This is called after the user has
 * been successfully authenticated.  During this message exchange, pseudo
 * terminals are allocated, X11, TCP/IP, and authentication agent forwardings
 * are requested, etc.
 */
static void
do_authenticated1(Authctxt *authctxt)
{
...
        s = session_new();
        if (s == NULL) {
                error("no more sessions");  //session_new失败,报错
                return;
        }
...

参考
http://unix.stackexchange.com/questions/26170/sshd-config-maxsessions-parameter
/usr/src/debug/openssh-6.4p1/sessions.c

相关文章
|
6月前
|
安全 网络安全 数据安全/隐私保护
wsl---ssh远程连接、ip映射及服务自启详细配置
在初步体验了wsl后,我们都想通过一些类似xshell的工具来进行连接,因为cmd真的是不太友好。 在多次反复操作后发现,网上很多千篇一律的教程在有些地方,真的是误导像我这种小白,因此,本片文章经历过多次修改以保让我等小白不被带偏。
|
8月前
|
Ubuntu 网络安全
Ubuntu系统怎么开启SSH
在 Ubuntu 系统中,开启 SSH 服务可以让远程用户通过 SSH 安全地访问服务器。
472 0
Ubuntu系统怎么开启SSH
|
10月前
|
机器学习/深度学习 域名解析 安全
【SSH】解决使用SSH命令远程连接Linux服务器加载访问慢,连接超时断开等问题
【SSH】解决使用SSH命令远程连接Linux服务器加载访问慢,连接超时断开等问题
291 0
|
Unix Linux Shell
SSH客户端常用工具SecureCRT操作
SSH客户端常用工具SecureCRT操作
277 0
SSH客户端常用工具SecureCRT操作
|
网络安全
DeepinLinux开启Ssh远程登录服务器
DeepinLinux开启Ssh远程登录服务器
|
网络协议 安全 Linux
liunx命令之telnet远程登入
telnet 通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式
165 0
|
网络安全
kali 启用默认root,开启SSH服务,安装VNC,设置服务自启动
启用默认root,开启SSH服务,设置服务自启动,安装VNC
|
网络安全 网络协议 开发工具
修改ssh远程默认端口
1. 修改ssh配置文件 [root@distzabbix ~]# vim /etc/ssh/sshd_config 找到第17行附近#Port 22 将#注释去掉,再新加一行Port 4522 15 # semanage port -a -t ssh_port_t -p tcp #PORTNU.
1795 0
|
Linux 网络安全 数据安全/隐私保护
win10下Linux子系统开启ssh服务
原文:win10下Linux子系统开启ssh服务 为了便于交流共同学习,博主QQ群242629020(stm32-MCU认认真真交流群) 欢迎批评指导!!!电梯:https://jq.
2575 0

相关产品

  • 云数据库 Redis 版
  • 云数据库 RDS MySQL 版
  • 云原生数据库 PolarDB