ssh及ssh-key
ssh命令:
1)SSH是安全的加密协议,用于远程连接Linux服务器。
2)SSH默认端口是22,安全协议版本SSH2,除了2之外还有SSH1(有漏洞).
3)SSH服务端主要包含两个服务功能SSH远程连接和SFTP服务。
4)Linux SSH 客户端包含ssh远程连接命令,以及远程拷贝scp命令等。
创建密钥:
客户端创建密钥:
命令说明:
1)创建密钥对时,要你输入的密码,为进行密钥对验证时输入的密码(和linux角色登录的密码完全没有关系);
2)如果我们要进行的是SSH免密码连接,那么这里密码为空跳过即可。
3)如果在这里你输入了密码,那么进行SSH密钥对匹配连接的时候,就需要输入这个密码了。(此密码为独立密码)
4)用户家目录下的.ssh隐藏目录下会生成:id_rsa id_rsa.pub 两个文件。id_rsa是用户的私钥;id_rsa.pub则是公钥
将公钥id_rsa.pub文件复制到另外一台服务器的用户家目录下的.ssh目录下
将拷贝过去的id_rsa.pub文件里的内容追加到~/.ssh/authorized_keys文件里
此时我们回到第一台服务器进行远程SSH连接
非交互式一条命令创建密钥对
ssh-keygen -t dsa -f ~/.ssh/id_dsa -P ""
通过ssh-copy-id进行公钥的自动分发。
SSH基于密钥的安全认证总结:
1)如果我们要进行免密码的SSH连接,那么在创建密钥对的时候不输入任何密码就可以了。
2)SSH基于密钥的安全认证的本质其实就是将密钥对中的公钥里的内容拷贝到对方服务器的用户家目录下的.ssh目录里的authorized_keys文件里。
3)你想要和对方服务器的哪个用户进行密钥对认证,那么你就要把公钥拷到对方该用户的家目录下的.ssh目录里的authorized_keys文件里(如果是想和普通用户进行密钥对登录,需要拷贝到/home目录下的该用户家目录下。)
4)ssh-keygen -t参数可以指定密钥对的加密类型。如果不指定默认rsa加密
更改ssh默认登录配置
修改SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd.config文件来实现的。
一般来说SSH服务使用默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供SSH服务的情况,可以不需要修改任何配置。
提示:
1)要是修改了port,那么ssh登录时就需要-p指定端口号,不然会登录失败,ssh默认登录22端口。
2)一旦修改了listenaddress,监听地址,那么不在地址范围内的所有客户端将无法远程连接服务器。
3)一旦启用了permitemptypasswords yes,那么所有无密码的用户也就可以远程登录了,并且还是免密码的方式。
4)useDNS 建议用no,不需要对DNS进行反向解析,可以加快ssh连接速度。
5)修改配置文件后,需要重启ssh服务才能生效。
未禁止root远程登录及更改ssh端口的直接登录方法为:
ssh -p22 root@192.168.126.136
如果端口已修改为特殊端口,那么用上面的命令连接就会报错:
1,no route to host 可能为防火墙影响
2,Connection refused可能为防火墙
Connection refused 还可能是连接的对端服务没开或者端口改变了。
SSH客户端命令小结
1,切换到别的机器上ssh -p端口号 user@ip
2,到其他机器执行命令(不会切到机器上)ssh -p端口号 user@ip 命令(全路径)
3,当第一次SSH连接的时候,本地会产生一个密钥文件~/.ssh/known_hosts(多个密钥)
scp知识小结
1,scp是加密的远程拷贝,而cp仅为本地拷贝
2,可以把数据从一台机器推送到另一台机器,也可以从其他服务器把数据拉回到本地执行命令的服务器。
3,每次都是全量完整拷贝,因此,效率不高,适合第一次拷贝用,如果需要增量拷贝,用rsync。
重点小结:
1,ssh为加密的远程连接协议。相关软件有openssh,openssl。
2,默认端口22。
3,协议版本1.x和2.x,2.x更安全。了解SSH协议原理。
4,ssh客户端包含ssh,scp,sftp命令。
5,ssh安全验证方式:口令和密钥,这两种都是基于口令的,SSH密钥登录的原理。
6,ssh服务安全优化,修改默认端口22;禁止root远程连接;禁止dns;SSH只监听内网IP。
7,ssh密钥对,公钥在服务器端,比如就是锁头,私钥在客户端。
运维安全工作:
1)修改所有服务器的账户密码,不要将密码设计的太简单,复杂一点。
2)配置防火墙策略,只允许公司外网IP可ssh访问服务器。
3)对防御工作要注意加强。
4)超级密码隐身登录,记录登录的账号密码。
5)最好设置一系列的检测机制,以防止入侵事故。
如何防止ssh登录入侵小结:
病毒通常在哪?
1)各种开机自启动里面:/etc/rx.local/ /etc/init.d/
2)定时任务:/var/spool/cron/*
3)系统的定时任务目录
如何防止ssh登录入侵:
1)用密钥登录,不用密码登录。
2)防火墙封闭ssh,指定源IP限制(局域网,信任公网)。
3)开启ssh只监听本地内网IP。
4)尽量不给服务器外网IP。
5)最小化软件安装。
6)给系统的重要文件或命令做一个指纹。
7)给他锁上chattr +i +a
免交互的分发密钥:
sshpass的安装需要aliyun和epel.repo源
wget -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install sshpass
免交互ssh连接并输入信息:
sshpass -p 登录密码 ssh -o StricHostKeyChecking=no root@nfs01
sshpass:是免交互输入密码的工具
-p:指定登录密码
-f:给出密码文件路径
生成密钥对:
免交互分发公钥:
验证公钥发送结果: