赞
踩
目录
1.sshd服务的用途
作用:可以实现通过网络在远程主机中开启安全shell的操作
Secure SHell ===>ssh 客户端
Secure SHell daemon ===>sshd 服务端
2.安装包
openssh-server
3.主配置文件
/etc/ssh/sshd_conf
4.默认端口
22
5.客户端命令
ssh
(备注:本文中远程主机为白色shell,当前主机为黑色shell用以区分。)
ssh -l [远程主机用户】 ip
【yes】是对身份证明生成过程进行确认,当远程主机收到【yes】后,会向当前主机发送身份公钥,并保存此公钥到~/.ssh/know_hosts。
远程主机持有私钥当客户主机再次连接时会对客户主机进行身份验证,如果身份验证改变,就会拒绝连接,效果如下:(远程主机通过删除ssh_host_ecdsa_key和ssh_host_ecdsa_key.pub后,重启sshd服务,从而获得新的身份私钥及公钥,此时身份验证发生改变,当前主机再次尝试连接就会被拒绝。)
当连接因为认证问题被拒绝时解决方案
vim ~/.ssh/know_hosts 在此文件中删除报错提示相应的行即可。
- ssh
- -l #指定登陆用户
- -i #指定私钥
- -X #开启图形
- -f #后台运行
- -o #指定连接参数
- # ssh -o "StrictHostKeyChecking=no" -l root <ip> 首次连接不许要输入yes
- -t #指定连接跳板
- # ssh -l root <ip1> -t ssh -l root <ip2>
(1)对称加密
加密和解密是同一串字符 容易泄漏 可暴力破解 容易遗忘
(2)非对称加密
加密用公钥,解密用私钥 不会被盗用 攻击者无法通过无密钥方式登陆服务器
方法一:
ssh-keygen
方法二
ssh-keygen -f /root/.ssh/id_rsa -P ""
ssh-copy-id -i /root/.ssh/id_rsa.pub username@serverip
这里的逻辑是利用上一步所产生的公钥,复制生成新的文件对远程主机(服务器)进行上锁 ,此时只有持有私钥的主机(客户端)才能经行登陆服务。
把上一步骤中所产生的私钥发送给当前主机(客户端)
scp /root/.ssh/id_rsa root@<ip>:/root/.ssh/id_rsa
当前主机拥有私钥后,再次登陆远程主机可实现免密登陆。
setenforce 0
systemctl disable --now firewalld
在更改sshd参数时需要先执行以上两个命令
修改参数命令:
vim /etc/ssh/sshd_config
Port 2222 #设定端口为2222
在将端口更改为2222后,当前主机直接进行登陆则会被拒绝,此时必须输入正确的端口才能登陆成功。
PermitRootLogin yes|no #对超级用户登陆是否禁止
此时将限制登陆远程主机的超级用户,但是对于普通用户是没有限制的。
DenyUsers lee #用户黑名单
对黑名单上出现的用户,当前主机进行登陆时则会被拒接,但是其他没有在黑名单上的用户登陆则不受限制,白名单的作用于此相反。
PasswordAuthentication yes|no #是否开启原始密码认证方式
此时,虽然远程主机开启非对称加密密钥对本机进行保护,但是可以看到,当前主机依然可以利用原始密码登陆远程主机。如此可以对sshd_config中PasswordAuthentication进行修改,如下图:
此时再想使用当前主机进行登陆时,没有私钥的主机则会被直接拒绝!
登陆方法可以参考前文标题“三”中的方法,将私钥传送给相应主机,则可经行免密登陆。
五、总结
本文介绍了Linux中关于远程登陆服务以及在登陆过程中如何利用加密及sshd安全优化参数对其进行限制,供大家参考~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。