首页 > 其他分享 >ssh、PAM模块

ssh、PAM模块

时间:2024-05-09 20:11:45浏览次数:24  
标签:rsync 模块 destination etc ssh conf PAM

.ssh/known_hosts 存储ssh指纹
sshd 服务器端
/etc/ssh/sshd_config 服务器端的配置文件
man 5 sshd_config 服务器端的配置文件帮助
echo root:1111|chapasswd 修改密码
openssl rand -base 64 9 随机取9位密码(随机数经过base编码取9位)

ssh常用参数:

Port  22     #生产建议修改
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes #默认ubuntu不允许root远程ssh登录
StrictModes yes   #检查.ssh/文件的所有者,权限等
MaxAuthTries   6     #pecifies the maximum number of authentication 
attempts permitted per connection. Once the number of failures reaches half this 
value, additional failures are logged. The default is 6.
MaxSessions  10         #同一个连接最大会话
PubkeyAuthentication yes     #基于key验证
PermitEmptyPasswords no      #空密码连接
PasswordAuthentication yes   #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #提高速度可改为no
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:
AllowUsers user1 user2 user3
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

在 ubuntu 上启用 root 远程ssh登录

#修改sshd服务配置文件
vim /etc/ssh/sshd_config 
#PermitRootLogin prohibit-password 注释掉此行
PermitRootLogin yes 修改为下面形式
systemctl restart sshd

ssh(telentPro)
ssh直接连接主机,并存储对方公钥以及指纹(指纹唯一。如果需要删除指纹就性 .ssh/known_hosts)
自动同意:StrictHostKeyChecking=no 或者修改配置文件StrictHostKeyChecking no

sshpass自动登录ssh工具

-p 后跟密码
-f 保存密码的文件名
-e 变量密码
sshpass -p 123465 ssh  StrictHostKeyChecking=no 10.1.1.1 'hostname'

公钥交换原理
image

image

ssh -keygen生成公私钥对
ssh -copy-id [email protected] 发生公钥给其他主机
加强版:(通过各个主机都使用同个密钥对,解决多个主机互相使用ssh需要重新创建公私钥对增加复杂性)
ssh -keygen #生成公私钥对
sshpass -p $pass ssh-copy-id -o StrictHostKeyChecking=no 127.0.0.1 #将公钥拷贝到自己主机上
rsync -a .ssh 10.0.0.#id:/root/ #将主机的公私钥对发送到其他主机上

scp

从本地复制文件到远程主机:
scp file.txt user@remote_host:/path/to/destination
从远程主机复制文件到本地:
scp user@remote_host:/path/to/file.txt /local/destination
从远程主机复制整个目录到本地:
scp -r user@remote_host:/path/to/directory /local/destination
从本地复制整个目录到远程主机
scp -r /local/directory user@remote_host:/path/to/destination
使用自定义 SSH 端口复制文件:
scp -P 2222 file.txt user@remote_host:/path/to/destination
使用 scp 命令同时压缩和加速传输:
scp -C -l 1000 file.txt user@remote_host:/path/to/destination

rsync(scpPro):

-a, --archive:归档模式,以递归方式复制文件,并保持所有文件属性。
示例:rsync -a source/ destination/
-v, --verbose:详细输出模式,显示 rsync 的执行过程。
示例:rsync -av source/ destination/
-r, --recursive:递归复制目录及其内容。
示例:rsync -r source/ destination/
-u, --update:仅复制源文件中更新的部分到目标位置。
示例:rsync -u source/ destination/
-n, --dry-run:模拟执行,显示执行 rsync 命令后会执行的操作,但不实际执行。
示例:rsync -nav source/ destination/
-z, --compress:启用数据压缩传输,减少网络带宽占用。
示例:rsync -az source/ destination/
-P, --partial --progress:显示传输进度,并支持断点续传。
示例:rsync -avP source/ destination/
-e, --rsh=COMMAND:指定远程 shell 命令,用于远程传输。
示例:rsync -av -e "ssh -p 22" source/ user@remote:/destination
--delete:删除目标位置上没有源位置的文件。
示例:rsync -av --delete source/ destination/
--exclude=PATTERN:排除指定的文件或目录。
示例:rsync -av --exclude='*.log' source/ destination/

sudo 授权
/etc/sudoers 授权配置

user: 运行命令者的身份
host: 通过哪些主机
(runas):以哪个用户的身份
command: 运行哪些命令

visudo(安全版vi)

root ALL=(ALL) ALL
例子: wang 10.0.0.1=(root) NOPASSWD:#不需要输密码# /usr/bin/mount /dev/cdrom /mnt
别名例子:
user_Alias Z=ZZ,LL
USER_Alias D=tom
Host_Alias S=www.1.com
Runas_Alias O=root
Cmnd_Alias SY=/bin/chown,/bin/chmod
Z S=SY
别名例子:
Defaults:wang runas_default=tom
wang ALL=(tom,jerry) ALL
wang$ sudo cmd  #默认代表tom执行cmd
wang$ sudo -u jerry cmd
不允许访问 例子:
wang 192.168.1.6,192.168.1.8=(root) /usr/sbin/,!/usr/sbin/useradd

PAM(模块)
/etc/pam.d/
/lib64/security/模块配置文件
/etc/security

vim (命令)查询和更改命令的模块

PAM配置格式

auth    [控制标志] 模块名称 [模块参数...]
account [控制标志] 模块名称 [模块参数...]
password [控制标志] 模块名称 [模块参数...]
session [控制标志] 模块名称 [模块参数...]

auth:用于进行用户认证的模块。当用户尝试登录时,将使用指定的模块进行身份验证。
account:用于进行账户管理的模块。例如,检查用户是否被锁定或是否允许登录。
password:用于修改用户密码的模块。例如,允许用户通过特定方式更改密码。
session:用于在用户登录和注销时进行会话管理的模块。例如,记录用户登录和注销事件。

1.required:模块的成功验证是必需的。如果验证失败,则 PAM 将立即返回失败,并且不会继续执行后续模块。如果验证成功,则继续执行后续模块。
2.sufficient:如果模块成功验证,则 PAM 将立即返回成功,并且不会继续执行后续模块。如果验证失败,则继续执行后续模块。如果所有的 sufficient 模块都失败,则认证失败。
3.requisite:类似于 required,但是如果验证失败,则 PAM 将立即返回失败,并且不会继续执行后续模块。如果验证成功,则继续执行后续模块。
4.optional:模块的成功验证是可选的。即使验证失败,PAM 也会继续执行后续模块。通常与 required 或 sufficient 搭配使用。
5.include:包含另一个 PAM 配置文件中的配置。这允许在配置中重用其他服务的配置。

常用模块:
pam_nologin.so(普通用户登录限制)
启用在pamd下创建nologin即可 普通用户无法远程登录
{在Centos7以上版本中,使用Systemd替代了之前的SysV。/etc/security/limits.conf文件的配置作
用域缩小了。/etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对
systemd的service的资源限制不生效。因此登录用户的限制,通过/etc/security/limits.conf
与/etc/security/limits.d下的文件设置即可。
对于systemd service的资源设置,则需修改全局配置,全局配置文件放在/etc/systemd/system.conf
和/etc/systemd/user.conf,同时也会加载两个对应目录中的所有.conf文
件/etc/systemd/system.conf.d/.conf和/etc/systemd/user.conf.d/.conf。system.conf
是系统实例使用的,user.conf是用户实例使用的}

pan.limits.so(资源限制)
/etc/security/limits.conf
/etc/security/limits.d/*.conf

文件配置
每行一个定义
< domain>     < type> < item> < value>
例子:zz - norpc 5

ulimit命令

-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-u size:最大用户进程数
-v size:设置虚拟内存的最大值.单位:kbytes
unlimited 是一个特殊值,用于表示不限制
#说明
查询时,若不加H或S参数,默认显示的是软限制
修改时,若不加H或S参数,两个参数一起改变

chrony(ntp时间同步)

/etc/chrony.conf 配置
server ntp.alicyuncom iburst #设置同步服务器
allow 0.0.0.0/0 #设置谁都可以同步
local stratum 10 允许没有外网也可以同步

chronyc sources -v or ntpdate $ip(cento8以后不在使用) 时间同步

标签:rsync,模块,destination,etc,ssh,conf,PAM
From: https://www.cnblogs.com/civetcat/p/18180295

相关文章

  • linux ssh 远程执行命令
    双引号#!/bin/bash#此脚本用于测试ssh工具远程执行多条命令方式#使用的前提是已经设置密钥对并以默认私钥文件名存放在默认路径~/.ssh/下(即ssh免密登录)#或者使用-i参数手动指定私钥位置host=192.168.126.101sshtomandersen@$host"source/etc/profileecho\$JA......
  • 模块学习之hashlib模块
    【一】什么是摘要算法Python的hashlib提供了常见的摘要算法,如MD5、SHA1等等摘要算法又称哈希算法、散列算法它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest......
  • 模块学习之logging模块
    【一】函数式简单配置importlogginglogging.debug('debugmessage')logging.info('infomessage')logging.warning('warningmessage')logging.error('errormessage')logging.critical('criticalmessage')默认情况......
  • 模块学习之time、datetime模块
    【一】表示时间的三种方式时间戳元祖(struct_time):年,月,日,时,分,秒,毫秒,微妙格式化的时间字符串:xx年-xx月-xx日时:分:秒【二】time模块(1)导入模块importtime(2)时间戳时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的......
  • 模块学习之os模块
    【一】导入模块importos【二】文件路径相关操作_file__指当前文件(1)获取当前文件路径(abspath)importosfile_path=os.path.abspath(__file__)print(file_path)#D:\Python\pythonProject\pythonProject1\demo7.py(2)获取当前文件所在文件夹路径(dirname)importos......
  • Python高级之模块与包
    【一】模块介绍【1】什么是模块在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能使用模块既保证了代码的重用性,又增强了程序的结构性和可维护性另外除了自定义模块外,我们还可以导入使用内置或第三方模块提供的现成功能......
  • BOSHIDA AC/DC电源模块在通信与网络设备中的应用研究
    BOSHIDAAC/DC电源模块在通信与网络设备中的应用研究随着通信与网络技术的不断发展,通信与网络设备的使用不断增加。电源作为通信与网络设备的重要组成部分之一,在其稳定工作中起到至关重要的作用。AC/DC电源模块作为一种常用的电源转换器,广泛应用于通信与网络设备中。 一,AC/DC......
  • Autoware定位模块解析
    定位概述定位有两个目的,一个是为了建图,一个是为了感知和决策规划建图时的定位和实际自动驾驶时的定位区别和相同点?区别:建图过程可以是离线的(回环检测),不要求定位实时性,而自动驾驶时的定位是在线的;建图时除了当前数据和已建地图不包含其他先验信息,而自动驾驶时的定位是包......
  • openssh升级
    openssh升级###获取安装包wget-qftp://10.56.81.253/openssh/*/root/###7系统版本安装telnet后,使用telnet链接另开一个窗口进行升级,因为升级ssh会stop服务。yuminstallxinetdtelnet-server-yecho"servicetelnet{disable=noflags=RE......
  • ssh&sftp端口分离
    ssh&sftp端口分离OS_6复制ssh相关文件为sftp的文件复制/etc/rc.d/init.d/sshd复制/etc/rc.d/init.d/sshd文件,到/etc/rc.d/init.d/sftpd[root@10_56_84_252~]#cp/etc/rc.d/init.d/sshd/etc/rc.d/init.d/sftpd复制/etc/pam.d/sshd复制/etc/pam.d/目录下的sshd文件,放......