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

clip_image002

/etc/init.d/sshd start

chkconfig sshd on

clip_image004

C端操作:远程链接

linux系统:

yum -y install openssh openssh-clients

clip_image006

ssh 用户@IP

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

clip_image008

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

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

scp john-*.tar.gz root@192.168.100.151:/root/ ##上传操作

clip_image010

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

sftp u01@192.168.100.151

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

sftp>get rhel.repo ##下载

sftp>bye #退出

clip_image012

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

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

vi /etc/ssh/sshd_conf

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

clip_image014

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

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

MaxAuthTries 6 ##密码错误次数

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

clip_image016

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

GSSAPICleanupCredentials no ##禁用GSSAPI

clip_image018

UseDNS no ##禁用DNS的解析

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

:wq

clip_image020

/etc/init.d/sshd restart

clip_image022

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

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

clip_image024

clip_image026

2.密钥对认证的ssh登录

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

vi /etc/ssh/ssd_config

PubkeyAuthentication yes ##支持公约认证

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

:wq

clip_image028

/etc/init.d/sshd restart

clip_image030

C端生成密钥对:

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

clip_image032

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

clip_image034

上传公约:

ssh-copy-id u02@192.168.100.151 ##给u02上传公约,u02登录就不需要密码

clip_image036

S端验证:

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

clip_image038

C端验证:

ssh u02@192.168.100.151 ##不需要密码

clip_image040

注意:

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

clip_image042

clip_image044

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

scp id_rsa.pub u02@192.168.100.151:/tmp/

clip_image046

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

clip_image048

S端总结:哪个账号家目录下有公约,哪个账号就能使用密钥对认证登录

C端:

root账号生成密钥对

su - c_u01

ssh u02@192.168.100.151 ##登录失败,原因是c_u01用户目录下无私钥

exit

cp ./ssh/id_rsa /home/c_u01/.ssh/

chown c_u01:c_u01 /home/c_u01/.ssh/*

clip_image050

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

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

ssh u02@192.168.100.151 touch a.file ##在C端执行,在S端以u02身份创建a.file,S端验证成功

clip_image052

clip_image054

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

ssh root@192.168.100.151 reboot

clip_image056

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

1)禁止scp,在S端完成

rpm -qa|grep openssh-*

clip_image058

yum remove openssh-clients –y

clip_image060

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

-bash: scp: command not found

clip_image062

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

clip_image064

clip_image066

clip_image068

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

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

clip_image070

groupadd sftp_u

useradd u02

echo 123123 |passwd --stdin u02

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

/etc/init.d/sshd restart

clip_image072

登录验证:

ssh u01@192.168.100.151 ###报错,提示只允许sftp

clip_image074

ssh u02@192.168.100.151 ##登陆成功

clip_image076

sftp u01@192.168.100.151 ##登录成功

clip_image078

sftp>cd /etc/ ##报错

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

clip_image080

clip_image082