远程连接服务器---SSH详解

简介:

对于系统管理员来说,远程连接服务器是一个很有用的操作,它使得服务器管理变得更加方便。

下面我就来科普一下有关远程连接服务器的知识:

目前,远程连接服务器的类型有以下几种:

① 文字接口的明文传输:Telnet、RSH为主,很少用到。

② 文字接口的加密传输:以SSH为主,已经取代了上面的明文传输方式。

③ 图形接口:XDMCP、VNC、XRDP等较为常见。

这篇文章只为实战,不为普及概念性知识。所以我只讲解在工作中最常用到的技术SSH。关于SFTP技术和VNC技术,请查阅我的其他博客。

好,先来看一下SSH的相关技术:

SSH,英文全程是Secure Shell Protocol(安全的壳程序协议)。SSH是现在公司基本上都在使用的一种文字接口的加密传输技术,采用的是非对称秘钥系统。

对于SSH的原理,你们可以参考我的另外一篇博客,我把链接贴在这里:

http://zhengkangkang.blog.51cto.com/12015643/1868846


⑴来吧,我们先来查看一下sshd这个服务(这就是SSH的远程连接必须开启的服务,属于系统自带),注意,一般这个sshd服务是默认自动开启的。

wKiom1ghKErBSOwvAAAtZjQzYco498.png-wh_50

如果想要重启怎么办呢?

好吧,请看:
wKiom1ghLeajxJaVAAA6yK2NCAs468.png-wh_50

上面两种重启动的方法都是可以滴!


⑵直接远程登录主机的命令:

ssh 【-f】 【-o 参数】 【-p 非标准端口】 【账号@】IP 【命令】
其中:

-f : 需要配合后面的【命令】,不登录远程主机直接发送一个命令过去

-o 参数 : 主要的参数有:

   ConnectTimeout=秒数 : 连接等待的秒数,减少等待的时间。

   StrictHostKeyChecking=【yes|no|ask】:默认是ask,若要让public key主动加入到known_hosts,    则可以设置为no即可。

-p : 如果sshd服务启动在非标准端口下,需使用此参数。


举例说明吧:

① 直接登录到对方主机:

如果是以root用户登录到对方主机,有如下两种登录方式:

wKiom1ghMWiDdhS3AACqnsvWwsc694.png-wh_50


注意:如果是普通用户登录,必须使用第二种加@的方式。


② 实现登录对方主机,执行命令后就离开的方式。例如:从远程主机上执行cat /etc/passwd命令把文件显示在本地主机上。

wKiom1ghMyCyG3KJAABBDmfuFrI675.png-wh_50


③ 不登录对方主机,让对方主机自己运行该命令,你立刻回到本地机器继续工作:

wKiom1ghNA2D8y8CAAB8nXlziyM941.png-wh_50


④ 删除known_hosts后,重新使用root连接到本机,会自动加上公钥记录

wKioL1ghNPqSLdaZAACJenGaB-c504.png-wh_50

你一定会说,大骗子玩漏了吧?怎么没有自动加上公钥记录呢?怎么记录信息提示手机选择yes/no了呢?别着急,我们的“-o”参数要横空出世了!有了【-o】,再也不用选择yes|no了,而是自动被选择了yes而加入到~/.ssh/known_hosts中。
wKiom1ghNoWh2G4IAABlr8xrgHI496.png-wh_50


看到了,这次没有提示让选择yes|no吧!


⑤ SSHD服务器详细配置

wKiom1ghOLaTocfuAAAvcj-8EtU259.png-wh_50


Centos默认的SSHD服务其实已经算是很安全了,这里注意Centos 5.X之后默认SSH协议版本都是V2也就是上图的【Protocol 2】,默认端口是 22,注意这些还不够,如果是真正工作中的服务器,建议取消root的登录权限:

wKiom1ghO3PAdaPYAAAnSYWp1Fw962.png-wh_50


把红框中的yes改为no就可以取消root用户的登录权限了。



下面来介绍一个很有用的技术,制作不用密码可立即登录的SSH用户。有人会说制作这个是用来干嘛的?你想一想,如果想要利用crontab来定时执行备份或者拷贝的任务,因为每次SSH连接都要输入对方主机密码,这是在crontab中无法执行的,那么怎么办?只有不需要输入密码才可以操作。

方法如下:

① 客户端建立两把钥匙

我们在客户端创建一个用户user1操作,利用user1来远程服务器端的user2用户。下面我们以192.168.1.118为客户端,以192.168.1.121为服务端。

首先在客户端建立两把秘钥

命令如下:

wKioL1giiK_TC0tBAAB4-qYgtUo612.png-wh_50


需要注意:

⑴ ~/.ssh目录的权限必须是700

⑵ id_rsa(私钥文件)的权限必须是-rw-------,且属主必须是当前登录用户,否则在未来秘钥比对的过程中,可能会被判断为危险而无法成功的以公私钥成对的机制来实现连接。

以上两点一般情况下默认都是正确的。

wKiom1giiyezQzDCAAA_ohDC5kA769.png-wh_50


② 将公钥文件数据上传至服务器端

wKiom1gijSDTtJ0-AABl3aN41lg818.png-wh_50


③ 将公钥文件放置到服务器端的正确目录中,并保证文件名正确

一定要把公钥文件内容附加到authorized_keys这个文件内,操作用户为服务器端用户

wKioL1gij3rxLcWcAACp6Crh0ag978.png-wh_50


注意:切记authorized_keys这个文件的权限必须是644


好了,已经搞定了。接下来我们就来测试一下从kang主机到kang1主机的无密码立即登录方式吧!

wKiom1gikAOzEc7hAAA4tQbcmQ0623.png-wh_50



本文转自 Super康 51CTO博客,原文链接:http://blog.51cto.com/zhengkangkang/1870976,如需转载请自行联系原作者

相关文章
|
4月前
|
Java 网络安全 数据安全/隐私保护
主流SSH远程连接客户端——MobarXterm安装教程
本文介绍了从FinalShell转向MobarXterm的原因及使用体验,详细对比了当前主流SSH客户端,推荐使用MobarXterm。文章还提供了MobarXterm的安装步骤、基本配置方法,包括设置默认编辑器、配置右键粘贴、SSH配置、关闭X-Server服务以及SFTP文件传输功能的使用。
主流SSH远程连接客户端——MobarXterm安装教程
|
4月前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
686 4
|
4月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
5月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
155 2
|
5月前
|
弹性计算 安全 网络安全
阿里云国际版无法远程连接Windows服务器的解决方法
阿里云国际版无法远程连接Windows服务器的解决方法
|
5月前
|
弹性计算 数据安全/隐私保护 Windows
阿里云国际版无法远程连接Windows服务器的排查方法
阿里云国际版无法远程连接Windows服务器的排查方法
|
5月前
|
存储 Linux 网络安全
让我们来尝试利用第三方软件远程连接服务器
即将进入Linux操作系统第二模块的学习,需先通过MobaXterm配置与虚拟操作系统连接。课程将基于MobaXterm讲解命令及知识。准备阶段包括:安装红帽7系统与MobaXterm远程SSH软件,检查网络连接,并按步骤完成MobaXterm的连接配置。
134 0
|
5月前
|
弹性计算 安全 关系型数据库
阿里云国际版远程连接Windows系统的ECS服务器时提示协议错误
阿里云国际版远程连接Windows系统的ECS服务器时提示协议错误
|
5月前
|
Java BI 数据安全/隐私保护
FineReport帆软设计器,远程连接服务器
FineReport帆软设计器,远程连接服务器
421 0
|
Ubuntu Linux 网络安全
SSH客户端连接远程服务器
一、什么是客户端连接远程服务器 发起连接的一方,计算机或设备(称为客户端)与另一个计算机或设备(称为远程服务器)建立连接。 客户端通过网络连接到远程服务器,远程服务器则是提供所需服务或资源的一方。 客户端通常使用特定的协议(如SSH、HTTP、FTP等)与远程服务器进行通信。 示例:你使用SSH客户端从本地计算机连接到远程服务器以执行远程命令。 二、什么是服务端连接远程服务器
367 1