第九章实验一:SSH配置与使用
1.ssh的链接:
SSH服务架构:C/S
S端:192.168.100.151
C端:192.168.100.150
S端操作:
yum -y install openssh-clients openssh-server openssh ##安装ssh
/etc/init.d/sshd start
chkconfig sshd on
C端操作:远程链接
linux系统:
yum -y install openssh openssh-clients
ssh 用户@IP
ssh [email protected] ##root是S端的root用户,如果省略用户以客户机当前用户尝试登陆。
scp 本地文件 用户@IP:/远程目录 ##上传,用户必须对目录有写入权限
scp 用户@IP:/远程文件 本地目录 ##下载,用户只需对远程文件有读取权限
scp john-*.tar.gz [email protected]:/root/ ##上传操作
sftp 用户@IP ##ssh的ftp上传下载文件
sftp [email protected]
sftp>cd /etc/yum.repos.d/ ##可以进入非家目录
sftp>get rhel.repo ##下载
sftp>bye #退出
windows系统:可以使用CRT,PUTTY,xmanager等常见的windows的客户端
2)SSH服务端的安全优化配置:
vi /etc/ssh/sshd_conf
ListenAddress 192.168.100.151 ##指定监听IP,如网关中只监听内网
LoginGraceTime 2m ##链接的无操作超时时间
PermitRootLogin no ##禁用root使用ssh,普通用户+su完成特权配置
MaxAuthTries 6 ##密码错误次数
MaxSessions 10 ##最大链接数量,多少用户同时登录
GSSAPIAuthentication no ##禁用GSSAIP认证方式加快ssh登录响应速度
GSSAPICleanupCredentials no ##禁用GSSAPI
UseDNS no ##禁用DNS的解析
AllowUsers u01 u03 u02@IP ##只允许u01用户登录,DenyUser拒s绝用户,不能同时使用,多个用户用空格隔开
:wq
/etc/init.d/sshd restart
echo "welcome to linuxfan.cn" >/root/welcome.txt
sed -i "/Banner/a Banner /root/welcome.txt" /etc/ssh/sshd_config ##添加登录时的提示文字
2.密钥对认证的ssh登录
S端:确保支持,取消如下的注释
vi /etc/ssh/ssd_config
PubkeyAuthentication yes ##支持公约认证
AuthorizedKeysFile .ssh/authorized_keys ##公约存放的文件名
:wq
/etc/init.d/sshd restart
C端生成密钥对:
ssh-keygen -t rsa ##生成密钥对,一直enter键
cd .ssh/ ##进入存放密钥对目录
上传公约:
ssh-copy-id [email protected] ##给u02上传公约,u02登录就不需要密码
S端验证:
cat /home/u02/.ssh/authorized_keys ##查看
C端验证:
ssh [email protected] ##不需要密码
注意:
S端其他用户可以使用cp公约到家目录下实现密钥对认证:
mkdir /home/u03/.ssh/
cp /home/u02/.ssh/authorized_keys /home/u03/.ssh/
chown u03:u03 /home/u03/.ssh/*
chmod 600 /home/u03/.ssh/*
在rhel6以前,可能执行ssh-copy-id不成功,解决方法:
scp id_rsa.pub [email protected]:/tmp/
cat /tmp/id_rsa.pub >/home/u02/.ssh/authorized_keys
S端总结:哪个账号家目录下有公约,哪个账号就能使用密钥对认证登录
C端:
root账号生成密钥对
su - c_u01
ssh [email protected] ##登录失败,原因是c_u01用户目录下无私钥
exit
cp ./ssh/id_rsa /home/c_u01/.ssh/
chown c_u01:c_u01 /home/c_u01/.ssh/*
c端总结:客户端用户目录下必须要有私钥,否则无法使用密钥对。
公约认证设置成功后可以直接在不登录情况下执行命令:
ssh [email protected] touch a.file ##在C端执行,在S端以u02身份创建a.file,S端验证成功
若启用root用户的sshd:能实现远程关机
ssh [email protected] reboot
3.ssh协议支持的远程复制文件的控制:
1)禁止scp,在S端完成
rpm -qa|grep openssh-*
yum remove openssh-clients –y
删除了openssh-clients后,再执行scp,就会报下面的错误:
-bash: scp: command not found
2)禁止sftp
vi /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server
把这行注释了,如下:
#Subsystem sftp /usr/libexec/openssh/sftp-server
退出保存后,重启sshd:
service sshd restart
注意以下实验单独做:如果与其他配置一同也许会有错误。
3)禁锢用户使用sftp时的目录提高安全,u01账号专用于sftp,其他用户不允许使用sftp,u02能使用ssh登录管理系统。
vi /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server ##注释此行
Subsystem sftp internal-sftp ##添加子系统命令
AllowUsers u01 u02 ##允许u01,u02用户
Match Group sftp_u ##给sftp_u组设置匹配sftp的规则
X11Forwarding no ##禁用图像界面
AllowTcpForwarding no ##禁用TCP转发
ChrootDirectory /home ##将sftp_u组禁锢在/home/目录中
ForceCommand internal-sftp ##强制使用internal-sftp命令
:wq
groupadd sftp_u
useradd u02
echo 123123 |passwd --stdin u02
usermod -G sftp_u u01 ##添加u01到组
/etc/init.d/sshd restart
登录验证:
ssh [email protected] ###报错,提示只允许sftp
ssh [email protected] ##登陆成功
sftp [email protected] ##登录成功
sftp>cd /etc/ ##报错
sftp>pwd ##显示在根目录,表示配置成功。