远程连接服务器---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服务是默认自动开启的。

如果想要重启怎么办呢?

好吧,请看:

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

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

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

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

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

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

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

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

举例说明吧:

① 直接登录到对方主机:

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

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

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

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

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

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

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

⑤ SSHD服务器详细配置

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

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

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

方法如下:

① 客户端建立两把钥匙

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

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

命令如下:

需要注意:

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

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

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

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

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

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

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

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

时间: 2024-10-01 07:06:42

远程连接服务器---SSH详解的相关文章

Idea 2019.2 (Ultimate Edition) 部署项目到远程Linux服务器tomcat 详解

前言:之前做项目,一直都是把本地的源码打成war包上传到远程服务器tomcat/webapps下.每次都要重新打成war进行项目的部署,感觉特别繁琐. 步骤: 1.环境配置 前提:保证在远程linux服务器上安装好tomcat. 2.Linux服务器tomcat配置 (1)在Linux上找到我们安装的tomcat的目录: (2)在tomcat下的bin中找到catalina.sh,进行远程发布需要在catalina.sh这个启动脚本中增加一些配置: 编辑catalina.sh文件: 按inset

linux 下远程连接mysql命令详解

http://hi.baidu.com/aaxh/blog/item/49bcb78ffe3dfae4f01f36b2.html一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u root -p123(注意-p与密码是紧跟的) 二.MySQL 连接远程数据库(192.168.0.201),端口“3306”,用户名为“root”,密码“123” C:\>mysql -h 172.1

RSA加密算法和SSH远程连接服务器

服务器端与客户端的密钥系统不一样,称为非对称式密钥系统 RSA算法的基础是模运算x mod n,事实上: [(a mod n) + (b mod n)] mod n = (a+b) mod n [(a mod n) - (b mod n)] mod n = (a-b) mod n [(a mod n) * (b mod n)] mod n = (a*b) mod n 因此有(a mod n)^d mod n = a^d mod n 报文/信息(message)其实仅仅是一个比特模式(bit pa

Paramiko模块基本使用,通过ssh远程连接服务器,并执行操作

Paramiko模块 通过ssh远程链接服务器并执行响应的操作,类似于XShell ps:ansible批量管理服务器工具,底层用的就是paramiko模块 安装 pip3 install paramiko 基本使用 远程链接服务器的方式 用户名和密码 公钥私钥的方式 paramiko上面两种方式都支持 执行命令 用户名和密码的方式 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许链接不在know_hosts文件中的主机 ssh.

linux服务ssh详解

ssh服务: 管理服务器的方式: 本地管理 (安装系统.故障修复) SSH远程连接的方式 Linux: ssh命令 Windows: Xshell; Xmanager SecureCRT Putty 提供ssh服务/ssh客户端工具的软件: [[email protected] ~]# rpm -qa | grep ssh openssh-server-6.6.1p1-33.el7_3.x86_64 openssh-clients-6.6.1p1-33.el7_3.x86_64 [[email 

Django之HttpServer服务器分析详解

大家知道,软件的正向工程,是从软件的需求获取开始,大概经历需求分析,概要分析,领域分析,设计分析,详细设计,代码实现,部署,实施这几个步骤,最终交付给用户使用.而在某些时候,比如某个软件产品是用PHP开发的,因为某些原因,我们想移植到JAVA平台去.或者某公司看到某个软件的市场前景很好,想COPY它的主要功能,然后经过加工润色后推出一个具有相同功能,更好用户体验或更多功能的软件.或者单纯的以研究软件的结构.设计思想为目的.基于这些需求,我们需要逆向工程.正向工程是一个从过程导出结果的步骤,而逆向

Linux系统环境搭建SVN服务器环境详解

Linux系统环境搭建SVN服务器环境详解: 本篇文章主要介绍的内容是在Linux系统下如何搭建SVN服务器的,目的是为了很好的实现代码版本控制管理,具体如下所示介绍: 一.安装需要的软件包 #yum install subversion     ---安装SVN服务工具 #yum install httpdmod_dav_svn mod_perl    ---用于支持WEB方式管理SVN服务 #yum install wgetmake unzip perl*       ---必备的软件包 二

JAVA通过JDBC连接Oracle数据库详解【转载】

JAVA通过JDBC连接Oracle数据库详解 (2011-03-15 00:10:03) 转载▼http://blog.sina.com.cn/s/blog_61da86dd0100q27w.html Java连接Oracle步骤: 1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名"); 2.获得连接 数据库地址: URL="jdbc:oracle:thi

远程连接服务器---openSSH黑白名单与root安全

目前,远程连接服务器的类型有以下几种:① 文字接口的明文传输:Telnet.RSH为主,很少用到.② 文字接口的加密传输:以SSH为主,已经取代了上面的明文传输方式.③ 图形接口:XDMCP.VNC.XRDP等较为常见. 实验环境: 两台linux redhat6.5 地址分别为 192.168.10.100 / 192.168.10.200 先来查看一下sshd这个服务(这就是SSH的远程连接必须开启的服务,属于系统自带),一般这个sshd服务是默认自动开启的. 直接SSH链接另一台主机 通常