1、ssh常用参数、用法
格式:ssh user@host_ip command
user 可省略,省略后用户为当前登录的用户
command 表示连接后执行的命令
在实际情况中,建议修改ssh的端口号,指定端口号要加p选项
ssh通过密钥连接:
在客户端生成两个密钥文件
将公钥传(.pub文件)传给服务器,这个过程,需要密码登录
再次连接目标主机,将不会要求输入密码
注意,如果变更登录的用户,那么需要重新上传密钥,因为key登录只影响当前登录的用户
ssh 本地端口转发:
如有三台主机A、B、C
A无法直接访问C,只能通过B转发访问C,在C上查看连接情况是B的主机
在A主机上执行:
ssh -L 本地不使用的端口:目标服务器IP:目标端口 中间服务器
-fNL : f 表示在后台执行,N表示不启用远程shell ,否则会登录到中间主机上 , L 本地端口
A主机可通过本地开启的端口访问目标主机
ssh 远程端口转发:
三台主机A B C
A无法访问C
在本地转发中,直接在A上执行命令打开A上的端口
而在远程转发中,则要在B上执行命令去打开A上的端口来建立ssh连接
ssh -fNR A上的端口:C主机IP:C主机端口 B主机IP
-fNR R表示远程端口
在A 上通过 127.0.0.1:888 访问服务
启用网关服务:
A的SSH配置文件中需要开启Gateway ,将Gateway 设置成YES
B主机上执行
ssh -fNgR A上的端口:C主机IP:C主机端口 B主机IP g选项表示开启网关模式
其它机器可以通过 A的IP加端口访问 C的服务
2、sshd服务常用参数
Port 22 SSH服务开放的端口,客户端通过此端口连接,可自定义,连接时加选项 -p
ListenAddress 0.0.0.0 绑定的IP地址,如果主机有多个IP,可指定
LoginGraceTime 2m 登录后如在两分钟之内没有操作会断开
PermitRootLogin yes 允许root 用户登录
StrictModes yes 检查.ssh文件夹的属性,如权限,所有者等
MaxAuthTries 6 登录失败次数,实际只有3次,帮助文档说明是设定值的一半
MaxSessions 10 最大的会话连接数
PubkeyAuthentication yes 基于key验证
PermitEmptyPasswords no 是否允许空密码连接
PasswordAuthentication yes 基于用户名密码连接
ClientAliveInterval 10 秒为单位
ClientAliveCountMax 3 连续检查3次,每次间隔10 秒,没有操作就断开
UseDNS no 使用dns做反向解析,提高速度改成no
GSSAPIAuthentication yes 改成no,提高连接速度
Banner /path/file 登录后显示欢迎信息
3、PAM和google模块实现ssh双因子安全验证
在需要认证的主机上安装google-authenticator
yum install google-authenticator 需配置好epel源
更改sshd配置文件: vim /etc/ssh/sshd_config
在pam文件中添加认证: vim /etc/pam.d/sshd
重新启动ssh服务
执行命令google-authenticator:
用浏览器打开其中的连接,会显示一个二维码
手机上也需要安装google-authenticator,打开后扫描这个二维码,会得到一串数字
填写code后,会得到五个串号,保存它们,因为当手机丢失的时候,无法验证的话,使用这个数字会解锁
注意的是一共五个,也就是只有五次机会,用一次少一次
实际上面的五个串号,都存放在/root/.google_authenticator文件中,可以自行在里面添加
所有都确认后,用其它客户端连接这个台主机,会出现需要code 验证,输入手机上的code,再输入密码,即可解锁
这里是启用了key的验证,如果是密码验证则会提示输入密码
4、使用chrony实现内网时间同步(一台node1从外网同步时间,其余机器从node1同步时间)
node1:
yum install -y chrony
更改配置文件:vim /etc/chrony.conf
添加阿里云时间服务器地址:
设置允许同步的客户端地址,并且当断网时,依然能够为客户端提供时间同步
如果还有下级时间服务器,allow中可以只填写下级的服务器地址
启动服务:
node2:
安装方式相同,只是服务器指定到node1的地址:
客户端指定所有地址:
5、利用cobbler实现系统自动化安装centos7
安装软件: yum install cobbler dhcp
启动服务:systemctl httpd cobblerd tftp
更改cobbler配置文件:
启用dhcp
更改服务器相关地址:
更改完成后同步一下配置:
更改启动菜单名称:
导入cobbler loaders 文件,用自带的get-loaders 命令出错,手动拷贝
挂载centos7 光盘,并挂载文件,用cobbler 命令导入,导入后会自动生成启动菜单
自定义添加菜单,并指定自定义的应答文件:
提前做好应答文件,放入/var/lib/cobbler/kickstarts/
更改应答文件,url 那行 变成$tree
执行如下命令添加自定义菜单:
cobbler profile add --name=centos7_self --distro=CentoS-7-X86_64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg
以上准备完成
新建虚拟机,从网络启动即可自行安装: