|NO.Z.00006|——————————|^^ 构建 ^^|——|Linux&SshTcpRoot.V03|——|禁止root|
一、禁止root密码登录

### --- 禁止root密码登录
[root@server14 ~]# vim /etc/ssh/sshd_config
PasswordAuthentication no // 默认是yes生效状态,改为no关闭;禁止使用密码登录
[root@server14 ~]# systemctl restart sshd // 重启后验证只能通过秘钥对登录
### --- 禁止使用root远程登录
[root@server14 ~]# useradd yanqi
[root@server14 ~]# passwd yanqi
[root@server14 ~]# vim /etc/ssh/sshd_config
PermitRootLogin no // 这个配置文件中注释并不代表不生效,将选项开启并改为no
[root@server14 ~]# systemctl restart sshd // 服务器拒绝root登录
[root@server15 ~]# ssh root@10.10.10.14 // root登录失败
root@10.10.10.14's password:
[root@server15 ~]# ssh yanqi@10.10.10.14 // 普通用户可以正常登录
yanqi@10.10.10.14's password:
[yanqi@server14 ~]$
### --- 修改默认端口,限制ssh监听IP
[root@server14 ~]# vim /etc/ssh/sshd_config
Port 55555 // 端口建议改为万位以上。并小于65535即可
[root@server14 ~]# systemctl restart sshd
[root@server15 ~]# ssh root@10.10.10.14 // 默认22端口拒绝
ssh: connect to host 10.10.10.14 port 22: Connection refused
Xshell:\> ssh root@10.10.10.14 55555 // 可以正常登录55555端口
[root@server15 ~]# ssh -p 55555 root@10.10.10.14 // 其它主机连接该设备端口
root@10.10.10.14's password:
Last login: Tue Feb 2 03:13:15 2021 from 10.10.10.2
[root@server14 ~]# netstat -antp // 可以查看到sshd服务监听的端口是55555
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:55555 0.0.0.0:* LISTEN 1547/sshd
[root@server15 ~]# nmap -sT 10.10.10.14 // nmap扫描端口,nmap默认只扫描低位端口,高位端口是扫描不到的。
Starting Nmap 6.40 ( http://nmap.org ) at 2021-02-02 02:40 CST
Nmap scan report for 10.10.10.14
Host is up (0.0019s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
55555/tcp open unknown
MAC Address: 08:00:27:29:DF:AE (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 0.61 seconds
### --- 限制ssh监听IP地址
[root@server14 ~]# vim /etc/ssh/sshd_config
ListenAddress 10.10.10.21 // 默认是0.0.0.0表示所有,修改一个指定的地址
[root@server14 ~]# ifconfig enp0s3:0 10.10.10.21 // ifconfig可以设置一张网卡有多个IP地址
[root@server15 ~]# ssh root@10.10.10.14 // 默认14地址是不可以登录的,因为14地址没有被监听
ssh: connect to host 10.10.10.14 port 22: Connection refused
[root@server15 ~]# ssh root@10.10.10.21 // 而21地址是可以监听到的。所以可以正常登录
root@10.10.10.21's password:
Last login: Tue Feb 2 03:28:21 2021 from 10.10.10.15
### --- scp:安全的远程文件复制命令:
[root@server14 ~]# scp /root/yanqi.scp root@10.10.10.15:/root/ // 将14的yanqi.scp下推送到15/root/下
[root@server15 ~]# ls
yanqi.scp
[root@server14 ~]# scp root@10.10.10.15:/root/yanqi.scp /root/ // 将15的yanqi.scp下的文件拉取到14/root/下
yanqi.scp 100% 0 0.0KB/s 00:00
[root@server14 ~]# ls
yanqi.scp
~~~ 若是对方服务器的端口发生了变化可以通过-P(大写)来传输
[root@server15 ~]# vim /etc/ssh/sshd_config
Port 55555
[root@server14 ~]# systemctl restart sshd
[root@server14 ~]# scp /root/yanqi.scp root@10.10.10.15:/root/ // 解析提示端口出现错误
ssh: connect to host 10.10.10.15 port 22: Connection refused
lost connection // 丢失了连接
[root@server14 ~]# scp -P 55555 /root/yanqi.scp root@10.10.10.15:/root/
yanqi.scp
### --- sftp:
~~~ 安全的传输协议,和scp的功能一模一样,ssh下的scp用的是tcp协议,而sftp用的是ftp协议。
~~~ ftp是明文传输,sftp是加密传输。
[root@server14 ~]# sftp root@10.10.10.15 // 登录到sftp中
Connected to 10.10.10.15.
sftp> help // 列出所有可用命令的帮助命令
sftp> pwd
Remote working directory: /root // 查看当前所在路径:也就是10.10.10.15下的root目录下
sftp> lpwd
Local working directory: /root // 打印本机的工作路径,没登录之前宿主机的路径:也就是10.10.10.14下的root目录下
sftp> pwd // 查看当前所在路径,服务器当前所在路径,10.10.10.15
Remote working directory: /root
sftp> lpwd // 打印本机的所在路径,宿主机的路径:10.10.10.14
Local working directory: /root
sftp> cd /tmp/ // 当前所在路径
sftp> lcd /tmp/ // 宿主机所在路径
sftp> ls // 当前所在路径
sftp> lls // 宿主机的路径
sftp>put // 将客户机汇总的指定文件上传到服务器端
sftp>get // 将服务器端的指定文件下载到客户机的当前所在目录
sftp>rm // 删除掉服务器端的指定文件
[root@server14 ~]# sftp -oPort=55555 root@10.10.10.15 // 指定特定端口登录-OPort=55555
Connected to 10.10.10.15.
附录一:
### --- 将公钥导入Linux主机的指定用户下的指定公钥配置文件内
~~~ 后面用哪个用户登录就放在谁家里,这里我们先用root用户做实验
~~~ 在root家目录下,找到.ssh目录,然后在里面创建authorized_keys文件,
~~~ 并且将公钥写入进入
### --- 使用windows尝试登录指定用户
### --- 禁止使用密码登录
~~~ 当我们学会了使用秘钥对进行验证后,建议生产环境下将账户秘密登录功能关掉
~~~ 配置文件:/etc/ssh/sshd_config
~~~ 选项:
PasswordAuthentication no
### --- 注意:
~~~ ssh的配置文件中,并不是注释掉的就是不生效的,有些是默认生效的,
~~~ 需要修改时一定要取消注释再修改。
### --- 禁止使用root远程登录
~~~ root 在系统中是一个可以为所欲为的角色,我们可以在平时的操作中用普通用户操作,
~~~ 在有需要修改一些系统设置的时候再从普通用户切换到root用户,
~~~ 这样可以最大限度的避免用户误操作对系统造成破坏,
~~~ 同时也可以避免黑客在暴力破解后直接使用root用户登录系统,
~~~ 一般在远程登录管理上我们会禁止直接使用root用户登录
~~~ 配置文件:/etc/ssh/sshd_confg
~~~ 选项:
PermitRootLogin no
### --- 修改默认端口,限制ssh监听IP
~~~ 修改默认端口:ssh作为一个用来远程管理服务器的工具,需要特别的安全,
~~~ 默认情况下使用TCP的22端口,若不能进行修改,很容易被利用遭到攻击,
~~~ 所以我们一般都会修改端口,尽量修改一个高位端口(范围1——65535)
~~~ 配置文件:/etc/ssh/sshd_config
~~~ 选项:
Port ⑤9527
ssh -p 端口 用户名@服务器IP
~~~ 限制ssh监听IP:有些服务器则安全级别更高一些,不允许使用外网直接登录,
~~~ 只有通过局域网才能登录,我们可以在机房里设置其中一台能够被外网远程连接,
~~~ 其他的主机都通过这个机器进行远程连接即可
~~~ 配置文件: /etc/ssh/sshd_config
~~~ 选项:ListenAddress 192.168.88.100
### --- ssh服务相关命令
~~~ scp:安全的远程文件复制命令:
~~~ scp是secure copy 的简写,用于在linux下进行远程拷贝文件的命令,
~~~ 类似于命令有cp,scp传输时加密的,所以可能会稍微影响一点速度,
~~~ 另外scp还非常不占资源,不会提高多少系统负荷。
~~~ 格式: scp 本地文件 用户名@服务器IP:目录
scp /root/atguigu.txt root@192.168.88.20:/tmp
-p 端口 // 若端口不是默认端口,则需要使用此格式指定端口
~~~ sftp:安全的文件传输协议
~~~ sftp是secure filetransferprotocol的缩写,安全文件传输协议,
~~~ sftp与ftp有着几乎一样的语法和功能,由于这种传输方式使用了加密/解密结束,
~~~ 所以sftp比ftp更安全一些,但传输效率比普通的FTP要低很多。
~~~ 格式:sftp 用户名@服务器IP
sftp
-oPort-端口 // 若端口不是默认22,则需要使用此格式指定端口
### --- 交互命令:
~~~ help:查看在交互模式下支持哪些命令:
~~~ pwd/lpwd:pwd是查看服务器所在路径,来陪我打是查看客户端所在路径
~~~ ls/lls:ls是查看服务器当前目录下文件列表,
~~~ ls是查看客户机当前所在路径的所有文件列表
~~~ put:将客户机汇总的指定文件上传到服务器端
~~~ get:将服务器端的指定文件下载到客户机的当前所在目录
~~~ rm:删除掉服务器端的指定文件
~~~ quit:退出sftp的交互命令,断开和服务器之间的连接。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv007-network
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通