linux ssh管理
linux centos7 ssh 常用管理和配置
默认放行ssh服务,不受firewalld-cmd的规则限制
远程连接
使用当前宿主用户的名称登录
ssh ip
指定用户名
ssh name@ip
指定本机的ip(多ip情况下切换)
ssh -b ip name@ip
当前服务器A远程登录服务器B后执行某个命令
ssh omd@192.168.1.100 "ls /home/omd"
当前服务器A远程登录服务器B后执行某个脚本
ssh omd@192.168.1.100 -t "sh /home/omd/ftl.sh"
指定连接端口
ssh -p 10002 name@ip
查看已知主机
cat /root/.ssh/known_hosts
ssh配置文件位置
/etc/ssh/sshd_config
ssh日志文件位置
日志文件
/var/log/wtmp
/var/log/btmp
/var/log/lastlog
/var/log/secure
清除 SSH 登录日志使用下面命令
cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/btmp
cat /dev/null > /var/log/lastlog
cat /dev/null > /var/log/secure
更改 ssh端口
修改ssh配置 ,新增Port 10001,打开Port 22
vi /etc/ssh/sshd_config
安装 semanage(semanage无法执行时)
yum provides semanage(查看依赖关系)
yum -y install policycoreutils-python
在 RHEL 8 及 CentOS 8 只要用 dnf 安裝 policycoreutils-python-utils 套件即可:
dnf install policycoreutils-python-utils
增加SElinux端口
semanage port -a -t ssh_port_t -p tcp 10001
查看是否添加成功
semanage port -l | grep ssh
防火墙开放端口
firewall-cmd --zone=public --add-port=10001/tcp --permanent
重启防火墙
firewall-cmd --reload
查看防火墙端口
firewall-cmd --list-ports
重启ssh服务
systemctl restart sshd.service
测试两个端口都可成功连接后, 移除22端口
firewall-cmd --permanent --zone=public --remove-port=22/tcp
firewall-cmd --remove-service=ssh --permanent
firewall-cmd --reload
未测试:
修改自动断开连接时间
vim /etc/ssh/sshd_config
ClientAliveInterval对应的0改成60,
ClientAliveCountMax, 使用默认值3即可.
ClientAliveInterval指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送.
ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.
ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开.
正常情况下, 客户端不会不响应.
重启sshd服务:
service sshd restart
或者 : 未测试
为了增强Linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现。
将以下字段加入到/etc/profile 中即可(对所有用户生效)。
export TMOUT=900 # 设置900秒内用户无操作就字段断开终端
readonly TMOUT # 将值设置为readonly 防止用户更改
注意:设置了readonly 之后在当前shell下是无法取消的,需要先将/etc/profile 中设置readonly行注释起来或直接删除,logout 后重新login 。
$ export TMOUT=900
$ readonly TMOUT
$ unset TMOUT
-bash: unset: TMOUT: cannot unset: readonly variable