第九章实验一: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

lqc_SSH配置与使用_第1张图片

/etc/init.d/sshd start

chkconfig sshd on

lqc_SSH配置与使用_第2张图片

C端操作:远程链接

linux系统:

yum -y install openssh openssh-clients

lqc_SSH配置与使用_第3张图片

ssh 用户@IP

ssh [email protected] ##root是S端的root用户,如果省略用户以客户机当前用户尝试登陆。

lqc_SSH配置与使用_第4张图片

scp 本地文件 用户@IP:/远程目录 ##上传,用户必须对目录有写入权限

scp 用户@IP:/远程文件 本地目录 ##下载,用户只需对远程文件有读取权限

scp john-*.tar.gz [email protected]:/root/ ##上传操作

lqc_SSH配置与使用_第5张图片

sftp 用户@IP ##ssh的ftp上传下载文件

sftp [email protected]

sftp>cd /etc/yum.repos.d/ ##可以进入非家目录

sftp>get rhel.repo ##下载

sftp>bye #退出

lqc_SSH配置与使用_第6张图片

windows系统:可以使用CRT,PUTTY,xmanager等常见的windows的客户端

2)SSH服务端的安全优化配置:

vi /etc/ssh/sshd_conf

ListenAddress 192.168.100.151 ##指定监听IP,如网关中只监听内网

lqc_SSH配置与使用_第7张图片

LoginGraceTime 2m ##链接的无操作超时时间

PermitRootLogin no ##禁用root使用ssh,普通用户+su完成特权配置

MaxAuthTries 6 ##密码错误次数

MaxSessions 10 ##最大链接数量,多少用户同时登录

lqc_SSH配置与使用_第8张图片

GSSAPIAuthentication no ##禁用GSSAIP认证方式加快ssh登录响应速度

GSSAPICleanupCredentials no ##禁用GSSAPI

lqc_SSH配置与使用_第9张图片

UseDNS no ##禁用DNS的解析

AllowUsers u01 u03 u02@IP ##只允许u01用户登录,DenyUser拒s绝用户,不能同时使用,多个用户用空格隔开

:wq

lqc_SSH配置与使用_第10张图片

/etc/init.d/sshd restart

lqc_SSH配置与使用_第11张图片

echo "welcome to linuxfan.cn" >/root/welcome.txt

sed -i "/Banner/a Banner /root/welcome.txt" /etc/ssh/sshd_config ##添加登录时的提示文字

lqc_SSH配置与使用_第12张图片

lqc_SSH配置与使用_第13张图片

2.密钥对认证的ssh登录

S端:确保支持,取消如下的注释

vi /etc/ssh/ssd_config

PubkeyAuthentication yes ##支持公约认证

AuthorizedKeysFile .ssh/authorized_keys ##公约存放的文件名

:wq

lqc_SSH配置与使用_第14张图片

/etc/init.d/sshd restart

lqc_SSH配置与使用_第15张图片

C端生成密钥对:

ssh-keygen -t rsa ##生成密钥对,一直enter键

lqc_SSH配置与使用_第16张图片

cd .ssh/ ##进入存放密钥对目录

lqc_SSH配置与使用_第17张图片

上传公约:

ssh-copy-id [email protected] ##给u02上传公约,u02登录就不需要密码

lqc_SSH配置与使用_第18张图片

S端验证:

cat /home/u02/.ssh/authorized_keys ##查看

lqc_SSH配置与使用_第19张图片

C端验证:

ssh [email protected] ##不需要密码

lqc_SSH配置与使用_第20张图片

注意:

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/*

lqc_SSH配置与使用_第21张图片

lqc_SSH配置与使用_第22张图片

在rhel6以前,可能执行ssh-copy-id不成功,解决方法:

scp id_rsa.pub [email protected]:/tmp/

lqc_SSH配置与使用_第23张图片

cat /tmp/id_rsa.pub >/home/u02/.ssh/authorized_keys

lqc_SSH配置与使用_第24张图片

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/*

lqc_SSH配置与使用_第25张图片

c端总结:客户端用户目录下必须要有私钥,否则无法使用密钥对。

公约认证设置成功后可以直接在不登录情况下执行命令:

ssh [email protected] touch a.file ##在C端执行,在S端以u02身份创建a.file,S端验证成功

lqc_SSH配置与使用_第26张图片

lqc_SSH配置与使用_第27张图片

若启用root用户的sshd:能实现远程关机

ssh [email protected] reboot

lqc_SSH配置与使用_第28张图片

3.ssh协议支持的远程复制文件的控制:

1)禁止scp,在S端完成

rpm -qa|grep openssh-*

lqc_SSH配置与使用_第29张图片

yum remove openssh-clients –y

lqc_SSH配置与使用_第30张图片

删除了openssh-clients后,再执行scp,就会报下面的错误:

-bash: scp: command not found

lqc_SSH配置与使用_第31张图片

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

lqc_SSH配置与使用_第32张图片

lqc_SSH配置与使用_第33张图片

lqc_SSH配置与使用_第34张图片

注意以下实验单独做:如果与其他配置一同也许会有错误。

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

lqc_SSH配置与使用_第35张图片

groupadd sftp_u

useradd u02

echo 123123 |passwd --stdin u02

usermod -G sftp_u u01 ##添加u01到组

/etc/init.d/sshd restart

lqc_SSH配置与使用_第36张图片

登录验证:

ssh [email protected] ###报错,提示只允许sftp

lqc_SSH配置与使用_第37张图片

ssh [email protected] ##登陆成功

lqc_SSH配置与使用_第38张图片

sftp [email protected] ##登录成功

lqc_SSH配置与使用_第39张图片

sftp>cd /etc/ ##报错

sftp>pwd ##显示在根目录,表示配置成功。

lqc_SSH配置与使用_第40张图片

lqc_SSH配置与使用_第41张图片