SSH为Secure Shell缩写,由IETF的网络小组所制定。SSH为建立在应用层基础上的安全协议。SSH是目前较可靠的,为远程登录会话和其他网络服务提供安全性的协议。

使用格式:ssh USERNAME@HOSTNAME

注意:其中USERNAME是服务端的用户名称,HOSTNAME是服务器的访问地址。

1、修改默认端口

我们会经常使用如下命令远程控制你的Linux系统:

ssh USERNAME@HOSTNAME

在此条命令中,系统会自动链接服务器的22端口,因为ssh的默认端口是22。如果我们修改默认端口,同样可以增强系统的安全性。首先修改配置文件:

vim /etc/ssh/sshd_config

搜索关键词Port,如果该设置项有注释请去掉,并将数字改为你想设置的值。重启服务:

systemctl restart sshd

修改端口之后,连接的命令为:

ssh -p NEWPORT USERNAME@HOSTNAME

2、禁止root的登录

每一个Linux系统,都会有root用户,就像Windows系统都有Administrator一样。当黑客们去尝试破解你的服务器的密码时,他们肯定会尝试使用此用户名去登录,这样他们只需解决密码即可。那如果我们禁用了root用户而改用其它用户,那破解的难度就增加了。首先修改配置文件:

vim /etc/ssh/sshd_config

搜索关键词PermitRootLogin,如果该设置项有注释请去掉,并将阈值修改为no。重启服务:

systemctl restart sshd

3、使用证书登录

上面的两种方式可以提升服务器的安全性,但也并不是绝对的,毕竟端口号的范围是1-65535,而用户名是明文的,所以很多企业都会使用证书验证形式。首先在客户端生成证书文件:

ssh-keygen

一路回车即可,生成的证书一般会保存在~/.ssh/id_rsa.pub,需要上传到服务器:

scp ~/.ssh/id_rsa.pub USERNAME@HOSTNAME:~

然后在服务器将该证书,导入到验证文件中:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

之后客户端就可以用证书登录了:

ssh -i ~/.ssh/id_rsa USERNAME@HOSTNAME

4、保持持久连接

一般服务器都会设置无响应超时断开时间,即长时间未收到客户端的数据后,会自动断开与客户端的连接。就像电脑长时间未操作,系统会自动进入到休眠一样。有时候我们需要长时间保持连接,可以执行下面命令:

ssh -o ServerAliveInterval=60 USERNAME@HOSTNAME

如果感觉每次输入太过麻烦,也可以修改配置文件/etc/ssh/ssh_config,添加以下内容即可:

ServerAliveInterval 60

5、修改默认端口注意事项

很多服务器都会开启防火墙,在修改端口后,需要开放指定的端口号,使用iptables需执行下面命令:

iptables -I INPUT -p tcp --dport NEWPORT -j ACCEPT

NEWPORT为新端口号,如果是firewalld则需执行:

firewall-cmd --zone=public --add-port=NEWPORT/tcp --permanent

6、禁止root的登录注意事项

禁止了root登录之后,务必添加一个可登录的用户:

useradd USERNAME

之后可使用该用户登录,登录后可以切换至root管理服务器:

su -

7、使用证书登录注意事项

设置证书登录之后,就不再需要密码验证了,可以编辑配置文件禁用密码登录:

vim /etc/ssh/sshd_config

将里面的PasswordAuthentication改为no即可,记得重启服务生效:

systemctl restart sshd

8、使用SCP传文件

SSH除了可控制系统,还可以通过该通道传输文件,只是命令不同,传文件的命令为SCP,用法如下:

scp /PATH/FILENAME USERNAME@HOSTNAME:/PATH/FILENAME

该命令也可以传输目录,命令如下:

scp -r /PATH/DIRNAME USERNAME@HOSTNAME:/PATH/DIRNAME

转载于:https://www.cnblogs.com/renyz/p/11226846.html

Linux服务之SSH相关推荐

  1. Linux服务笔记之二:SSH远程登录

    上次,写了用传统的telnet方法来远程管理服务器.今天,写下如何用SSH(Secure SHELL)协议来远程管理服务器.优点:因为SSH基于成熟的公钥加密体系,所以传输的数据会进行加密,保证数据在 ...

  2. Linux系统下SSH服务启动失败故障处理

    Linux系统下SSH服务启动失败故障处理 一.系统版本 二.报错状态 三.处理方法 四.查看服务状态 一.系统版本 [root@localhost ~]# cat /etc/os-release N ...

  3. kali linux 的ssh服务器,如何在 Kali Linux 上安装 SSH 服务

    目的 我们的目的是 Kali Linux 上安装 SSH(安全 shell). 要求 你需要有特权访问你的 Kali Linux 安装或者 Live 系统. 困难程度 很容易! 惯例 #– 给定命令需 ...

  4. Linux服务-SSH服务部署

    Ubuntu部署ssh服务 简介 SSH是一种用于安全访问远程服务的网络协议,它将客户端与服务端之间的消息通过加密保护起来,取得一定的安全作用.本文主要介绍如何在Ubuntu下搭建SSH服务. 为什么 ...

  5. linux系统ssh服务无法启动,Linux上的SSH无法启动

    问题 Linux上的SSH无法启动, 报告/var/empty/sshd must be owned by root and not group or world-writable 解决方案 首先通过 ...

  6. Linux服务篇之远程访问及控制SSH

    文章目录 1 SSH 1.1 SSH 概念 1.2 SSH 优点 2 SSH 远程管理 2.1 SSH 远程登录方式 2.2 故障集 2.3 OpenSSH 服务器 2.4 OpenSSH 服务包 3 ...

  7. Linux运维学习:中级进阶(2)——Linux企业常用服务(SSH、DHCP、FTP、NFS、DNS)

    SSH服务 简介 SSH(Secure Shell Protocol) 是由IETF网络工作小组制定,在进行数据传输之前,SSH先对联级数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递 ...

  8. 云计算Linux运维——基础服务应用——SSH远程连接(1)

    点关注不迷路 目录 点关注不迷路 SSH远程连接 一.SSH介绍 1.管理Linux服务器的方式 2.确保Linux服务正常运行 3.客户端软件 二.ssh远程连接操作 1.ssh远程连接 2.执行远 ...

  9. 【Linux】循序渐进学运维-服务篇-SSH秘钥认证

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第5篇文章 文章目录 前言 为什么用密钥认证 秘钥认证流程 秘钥生成及使用 1. 交互式创建及分发秘钥 a) 生成秘钥 b) 分发秘钥 ...

最新文章

  1. 2020-10-26runtime error: member access within null pointer of type ‘struct ListNode‘ (solution.cpp)错
  2. 【开机自启】属于你的个性化!八步完成喜欢的软件开机自启!
  3. ie6中容器内浮动元素的border边框不完全显示的bug
  4. 让Python删除window下文件
  5. oracle中least()和greastest()函数的使用,其中还包含一些if...then..elseif的使用
  6. 每日算法系列【LeetCode 123】买卖股票的最佳时机 III
  7. linux+shell+解压命令,linux shell解压命令
  8. 摄氏度和开氏度的换算_开氏度和摄氏度
  9. 计算机 本科专业 课程
  10. android 剪贴板增强工具,ClipX - 超级实用的小巧剪贴板增强工具
  11. 超声波模块的原理介绍之时间函数和digitalRead函数的使用
  12. 你还在用乞丐版的深拷贝么
  13. 嵌入式应该怎么去学?-熊健-专题视频课程
  14. 什么样的面试更有效?
  15. stimulsoft入门教程:报表与页面上的图表(一)
  16. CLUSTER 05: 块存储应用案例 分布式文件系统 对象存储
  17. 教师节,回忆一点(更新完毕)
  18. 泛型在Android中的应用
  19. Python Numpy .npy文件打开
  20. 机器人行业五大趋势:中国成为机器人投资狂热爱好者

热门文章

  1. `if __name__ == __main__`模块运行代码管理
  2. 视频: 电子制作基本知识
  3. ASP.NET 安全性
  4. 漫步最优化四十三——拟牛顿法
  5. 漫步微积分十七——最大最小值问题(续)
  6. vector中删除元素后,如何有效的释放无效元素的内存
  7. 使用git将本地文件上传到远程仓库
  8. leetcode —— 面试题 16.19. 水域大小
  9. django+mysql+插入数据库网页展示内容
  10. A. Gamer Hemose