SSH: (Secure Shell)的缩写,是建立在应用层和传输层基础上的安全协议,SSH是目前 较为可靠的专为远程登录会话和其他网络服务提供安全性的协议,数据在使用ssh方式传输的时候是加密的,即使别人截获也不知道是什么数据;为客户端提供安全的Shell环境,用于远程管理,默认端口:TCP 22 telnet 23
SSH基于公钥加密(非对称加密)技术:
数据加密传输;
客户端和服务器的身份验证;
相关软件包:
配置文件参考:
相关登录信息:
命令:可以用-p选项指定端口号登陆:
ssh 192.168.1.108 -p 222
1》安装相关软件,默认已经安装;
2》修改配置文件,用xshell软件远程登录:
1>密码认证(默认使用,认证的用户需要本地存在,/etc/passwd /etc/shadow),
简单配置:
2>密钥认证:
上述文件存放本地主机当前用户ssh连接过的服务器的公钥,存放在当前用户的家目录下的.ssh目录里,此文件不需要自己创建,ssh连接之后就会自动创建;
============= 公钥认证客户端具体流程(刚刚开始):
==========================SSH公钥认证流程:
实例分析:
1》客户端用普通用户创建密钥对:
注意:公钥和私钥,还有ssh配置文件的权限绝对不可以乱动,都是为600:
2》将用户的公钥上传到服务器的root用户家目录下.ssh/authorized_keys:
方法:
3》在客户端进行验证,注意要用普通用户来登录服务器的root用户权限:
==============在xshell上使用密钥认证登录:
密钥的功能可分为两种:
数据加密;能保证所发送数据的机密性;
数字签名:能保证数据完整性,身份验证和不可抵赖;
===============数字签名原理:
===============密钥的额外功能使用:
1》定时可以在客户机上远程执行服务器上的脚本,而不用登录服务器?
答:在客户机上写一个脚本触发服务器上的脚本,然后在客户机上执行计划任务就可以了,客户机与服务器之间必须配置密钥认证;
2》通过SSH可以运行服务器中的窗口程序:
ssh -X root@192.168.1.106
然后运行相关窗口程序命令,不过客户端必须在图形界面下的虚拟终端上运行命令;
===================问题:
1>scp远程复制文件和ssh远程登录都可以使用-p来指定端口号;
2>ssh-copy-id 只能使用22号端口;
3>ssh的安全性问题?你有哪些措施?
密钥认证;
不允许root登录;
只允许某些固定的IP地址ssh过来(使用TCPWrappers中的hosts.allow,hosts.deny);
使用chkconfig --list 命令可以查看有哪些独立进程和超级进程
4>SSH日志存放地方?
/var/log/messages
/var/log/secure
5>密钥文件的权限性问题?
不可以随便改动,必须保持600权限,know_hosts文件也一样;
6>SSH连接比较慢?
将服务器中的配置文件sshd_config文件中的UseDNS选项注释去掉,并no,不让SSH服务器去进行DNS解析,这样可以节省大量时间;
7>SSH远程登录执行脚本,如果突然网络断开了,脚本是否会继续执行?
脚本会继续执行,当网络再次连接上后,如果客户端是在命令行上SSH连接的,那么客户端会自动再次连接上服务器;
8>xshell中如何使用密钥连接服务器?
Linux服务器首先生成一对密钥;将私钥发送给Windows客户端,并且将用公钥生成authorized_keys 文件;然后就可以在xshell端用密钥认证方式登录了;
9>批量运维问题?
使用要求:客户端与服务器之间要建立单向信任关系,密钥认证:
pssh ------>parallel 并行 --->批量执行命令
pscp------->批量传输文件