环境准备

:::info

实验目标:ServerA通过用户ServerB(已发送密钥和指定端口)

:::

主机 IP 身份
ServerA 192.168.10.201 SSH客户端
ServerB 192.168.10.202 SSH目标主机

在使用SSH登录远程主机时,指定的用户名是指远程主机上的用户。命令格式如下:

ssh username@remote_host

这里的 username 是指您打算用来登录远程目标主机的用户名,这个用户必须存在于远程目标主机的系统中,并且具有相应的访问权限。remote_host 则代表您想要连接的远程服务器的IP地址或域名。

举例来说,如果您要使用名为 myuser 的用户账户登录IP地址为 192.168.0.100 的远程服务器,命令应写作:

ssh myuser@192.168.0.100

在这个命令中:

myuser 是您指定的用户名,对应的是远程服务器上已经存在的用户账户。

192.168.0.100 是远程主机的IP地址

执行此命令后,SSH客户端会尝试使用您本机当前用户的公钥(如果有已配置的密钥对认证)或提示您输入 myuser 账户在远程主机上的密码来进行身份验证。一旦身份验证成功,您将获得 myuser 用户在远程服务器上的 shell 终端会话。

总结来说,通过SSH登录远程主机时指定的用户名是指远程主机上的用户,而不是本机用户。本机用户的信息仅用于确定本地的SSH客户端配置(如私钥位置)以及可能的代理转发设置等,但实际登录远程服务器时的身份是由您提供的远程用户名决定的。

禁止root登录

root登录测试

[root@ServerA ~]# ssh -p 5000 root@ServerB
Activate the web console with: systemctl enable --now cockpit.socket This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register Last failed login: Thu Apr 18 03:59:14 EDT 2024 from 192.168.10.201 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Thu Apr 18 03:56:51 2024 from 192.168.10.201
[root@ServerB ~]# 注销

取消注释改为no

(如果不注销配置则无法生效)

root用户测试

[root@ServerA ~]# ssh -p 5000 root@ServerB
root@serverb's password:
Permission denied, please try again.
root@serverb's password:
Permission denied, please try again.
root@serverb's password:
root@serverb: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

允许禁止某用户登录

远程主机创建用户

[root@Serverb ~]# useradd zhangsan
[root@Serverb ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@Serverb ~]# useradd lisi
[root@Serverb ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

两个用户都可以远程登录

[root@servera ~]# ssh zhangsan@ServerB -p 5000
zhangsan@serverb's password:
Last login: Fri Jul 12 14:33:34 2024 from servera
[zhangsan@serverb ~]$ exit
logout
Connection to serverb closed.
[root@servera ~]# ssh lisi@ServerB -p 5000
lisi@serverb's password:
Last login: Fri Jul 12 11:24:26 2024 from servera
[lisi@serverb ~]$ exit
logout
Connection to serverb closed.
[root@servera ~]#

底部添加参数允许zhangsan拒绝lisi

[root@Serverb ~]# vim /etc/ssh/sshd_config
[root@Serverb ~]# systemctl restart sshd.service
[root@Serverb ~]# tail -n 3 /etc/ssh/sshd_config
# ForceCommand cvs server
AllowUsers zhangsan
DenyUsers lisi
[root@Serverb ~]#

测试登录

张三允许登录

[root@servera ~]# ssh zhangsan@ServerB -p 5000
zhangsan@serverb's password:
Last login: Fri Jul 12 14:42:10 2024 from servera
[zhangsan@serverb ~]$ exit
logout
Connection to serverb closed.

李四禁止登录

[root@servera ~]# ssh lisi@ServerB -p 5000
lisi@serverb's password:
Permission denied, please try again.
lisi@serverb's password:
Permission denied, please try again.
lisi@serverb's password:

Pam模块禁止用户

ServerB

只允许李四登录

[root@serverb ~]# echo "lisi" | sudo tee /etc/ssh/allowed_users
lisi
[root@serverb ~]# cat /etc/ssh/allowed_users
lisirverB ~]# chmod 644 /etc/ssh/allowed_users
[root@Serverb ~]# systemctl restart sshd.service
[root@Serverb ~]# tail -n 1 /etc/ssh/sshd_config
# ForceCommand cvs server
[root@Serverb ~]# tail -n 1 /etc/pam.d/sshd
auth required pam_listfile.so item=user sense=allow onerr=fail file=/etc/ssh/allowed_users

张三禁止登录

[root@servera ~]# ssh zhangsan@ServerB -p 5000
zhangsan@serverb's password:
Permission denied, please try again.
zhangsan@serverb's password:
Permission denied, please try again.
zhangsan@serverb's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

李四可登录

[root@servera ~]# ssh lisi@ServerB -p 5000
lisi@serverb's password:
Last login: Fri Jul 12 14:50:03 2024 from servera

Match User模块

ServerB

使用模块禁止李四

[root@ServerB ~]# vim /etc/ssh/sshd_config
[root@ServerB ~]# tail -n 6 /etc/ssh/sshd_config
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
Match User lisi
PermitTTY no
ForceCommand /bin/false
[root@ServerB ~]# systemctl restart sshd.service

这里,PermitTTY no禁止分配伪终端,ForceCommand /bin/false设置了一个无效的命令,确保用户无法成功登录。

ServerA

张三用户可登录

[root@servera ~]# ssh zhangsan@ServerB -p 5000
zhangsan@serverb's password:
Last login: Fri Jul 12 15:01:09 2024 from servera
[zhangsan@serverb ~]$ exit
logout
Connection to serverb closed.

李四用户不可登录

[root@servera ~]# ssh lisi@ServerB -p 5000
lisi@serverb's password:
PTY allocation request failed on channel 0
Connection to serverb closed.

指定其他用户免密登录

ServerA

Server通过指定端口将密钥发送到对应用户文件夹下

[root@servera ~]# ssh-copy-id -i .ssh/id_rsa.pub  -p 5000 zhangsan@ServerB
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
zhangsan@serverb's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '5000' 'zhangsan@ServerB'"
and check to make sure that only the key(s) you wanted were added.

ServerB

[root@ServerB ~]# systemctl restart sshd.service
[root@ServerB ~]# ll /home/zhangsan/.ssh/
总用量 4
-rw-------. 1 zhangsan zhangsan 580 4月 18 04:35 authorized_keys
[root@ServerB ~]#

ServerA登录

[root@servera ~]# ssh zhangsan@ServerB -p 5000
Last login: Fri Jul 12 15:05:21 2024 from servera
[zhangsan@serverb ~]$ exit
logout
Connection to serverb closed.

禁止密码登录

PasswordAuthentication no

密码登录测试与免密测试

[root@servera ~]# ssh lisi@ServerB -p 5000
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[root@servera ~]# ssh zhangsan@ServerB -p 5000
Last login: Fri Jul 12 15:06:25 2024 from servera
[zhangsan@serverb ~]$ exit
logout
Connection to serverb closed.

指定用户和IP登录

AllowUsers zhangsan@192.168.10.201

拒绝登录

[root@localhost ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.128 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::3429:206b:def4:69f2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:be:62:ce txqueuelen 1000 (Ethernet)
RX packets 1453 bytes 1745198 (1.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 859 bytes 68106 (66.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# ssh zhangsan@192.168.10.202 -p 5000
zhangsan@192.168.10.202's password:
Permission denied, please try again.
zhangsan@192.168.10.202's password:
Permission denied, please try again.
zhangsan@192.168.10.202's password:

允许地址登录

[root@servera ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.201 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::c086:7d71:44a8:c234 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:9f:70:a6 txqueuelen 1000 (Ethernet)
RX packets 811 bytes 153103 (149.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 993 bytes 212878 (207.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@servera ~]# ssh zhangsan@ServerB -p 5000
Last failed login: Fri Jul 12 15:58:09 CST 2024 from 192.168.10.128 on ssh:notty
There were 3 failed login attempts since the last successful login.
Last login: Fri Jul 12 15:24:32 2024 from servera
[zhangsan@serverb ~]$

SSH指定用户登录与限制的更多相关文章

  1. Ftp站点搭建的详细过程(包括指定用户登录)

    最近接到要部署一个Ftp站点的一个任务,然后过程中有点小插曲踩了一些坑(指定用户登录,用户名和密码都是对的,输入了超级多遍,还是不行,登录不上,后面详细说明解决方案),特此记录一下.避免大家踩坑. 参 ...

  2. linux下怎么查看ssh的用户登录日志

    linux下登录日志在下面的目录里: cd /var/log 查看ssh用户的登录日志: less secure linux日志管理: 1. 日志简介 日志对于安全来说,非常重要,他记录了系统每天发生 ...

  3. 38-Ubuntu-用户管理-03-usermod指定用户登录shell

    简记: 所谓shell就是可以输入终端命令的窗口,shell是一个软件. 1.Ubuntu终端shell介绍 summmer@summmer-virtual-machine:~/桌面$ summmer ...

  4. 深度(deepin)系统不能ssh root用户登录

    vi /etc/ssh/sshd_config找到这一部分信息刚进去信息应该是这样 # Authentication: #LoginGraceTime 2m #PermitRootLogin proh ...

  5. linux中ftp用户登录密码忘记了怎么修改

    先来熟悉一下 vsftp 命令: 启动vsftp用命令: 1.service vsftpd start 重启vsftp用: www.111cn.net1.service vsftpd restart ...

  6. django 从零开始 8 用户登录验证 待测

    看文档 djang 自带一个用户登录验证的方法,不过有些看着懵逼,去网上找了一圈,发现很多都是照抄文档说明的,几乎没说啥原理 特别是 from django.contrib.auth import a ...

  7. linux用户登录指定目录

    一.创建用户和用户组 [root@web4 lianyu]# groupadd lianyu [root@web4 lianyu]# useradd lianyu -g lianyu [root@we ...

  8. 解决root用户ssh配置无密码登陆/hadoop用户照仿可以实现相同功能:hadoop用户登录并且把命令的所有root换成home/hadoop

    http://inuyasha1027.blog.51cto.com/4003695/1132896/ 主机ip:192.168.163.100(hostname: node0) ssh无密码登陆的远 ...

  9. linux查看ssh用户登录日志与操作日志

    linux查看ssh用户登录日志与操作日志 2013-11-01转载   ssh用户登录日志 linux下登录日志在下面的目录里:  代码如下 复制代码 cd /var/log 查看ssh用户的登录日 ...

  10. Linux给指定用户或全部用户(已登录)发送消息

    在局域网络内很多时候是许多人共用一些机器,但如果多个人同时在使用同一台机器必定会发生一些冲突,比如系统的某些配置被修改,这样引起一些麻烦.那么如果在使用该机器之前,先给登录到该机器的所有其他用户发送一 ...

随机推荐

  1. vue绑定对象,绑定的值不改变的问题

    在使用vue结合elmentui的table组件,对数组绑定,需要编辑数组里一些属性的值.我的情况是,需要在打开这个表时,根据条件插入一些对象到table里,经测试,到这里是没问题的,可以显示新插入的 ...

  2. Fastapi获取其他第三方回调

    flask.django获取第三方回调数据,可以用request.data直接获取全部参数.而很多同学不知道fastapi如何获取回调的全部参数,其实可以通过request.body(). 如: @p ...

  3. [NOIP2004 普及组] 火星人

    传送锚点:https://www.luogu.com.cn/problem/P1088 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明 ...

  4. Android 12(S) MultiMedia Learning(五)NuPlayer

    之前几节看到MediaPlayer的java接口最终会调用到native层中的NuPlayer,NuPlayer由Render,DecoderBase,Source三部分组成. Render:负责AV ...

  5. 【昇腾开发全流程】AscendCL开发板模型推理

    前言 学会如何安装配置华为云ModelArts.开发板Atlas 200I DK A2. 并打通一个Ascend910训练到Ascend310推理的全流程思路. 在本篇章,我们继续进入推理阶段! 推理 ...

  6. itest(爱测试)开源接口测试&敏捷测试&极简项目管理 7.0.0 发布,重大升级

    (一)itest 简介及更新说明 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1,又有丰富的统计分析.可按测试包 ...

  7. mysql中,时间类型datetime和timestamp的区别

    TIMESTAMP和DATETIME的相同点: 两者都可用来表示 YYYY-MM-DD HH:MM:SS 类型的日期. TIMESTAMP和DATETIME的不同点: 1>  两者的存储方式不一 ...

  8. Promise 期约

    Promise 期约之前 回调地狱 设想这样一个经常发生的场景,我们希望处理Ajax请求的结果,所以我们将处理请求结果的方法作为回调传入,需要将请求结果继续处理,这就导致我们陷入了回调地狱 doSom ...

  9. undefined,null 和 undeclared 有什么区别?

    a.null表示"没有对象",即该处不应该有值,转为数值时为0.典型用法是:作为函数的参数,表示该函数的参数不是对象.作       为对象原型链的终点. b.undefined表 ...

  10. 判断URL是否编码,编码后的sign对签名和验签都有影响,导致验签不通过

    判断URL是否编码,编码后的sign对签名和验签都有影响,导致验签不通过如果含有 + %符号无法判断, 否则判断不准或报错 Exception in thread "main" j ...