Author Email
Yaoyao Liu yaoyaoliu@msn.com

本文所有教程以ubuntu为例,对其他unix内核系统如Debian、CentOS、macOS等也适用。

目录

安装并开启SSH服务

使用SSH密钥访问服务器

使用SSH反向隧道实现内网穿透

安装并开启SSH服务

使用SSH访问远程服务器,需要在服务器端安装并开启SSH服务。

安装openssh

(at server) sudo apt-get install openssh-server

查看ssh状态

(at server) ps -aux|grep ssh

启动服务

(at server) service ssh start

假设服务器相关信息如下:

host: 123.123.123.123
username: example_user

那么我们就可以用如下方式远程访问服务器

(at local) ssh example_user@123.123.123.123

使用SSH密钥访问服务器

在本地生成RSA密钥和公钥,-t 表示type,就是说要生成RSA加密的钥匙

(at local) ssh-keygen -t rsa

ssh密钥默认的保存路径是~/.ssh/,文件名为id_rsa(私钥)和id_rsa.pub(公钥)

然后,你需要将ssh密钥上传到服务器端,可以用如下命令快速实现这个操作

(at local) ssh-copy-id example_user@123.123.123.123

也可以手动完成:

(at local) cat ~/.ssh/id_rsa.pub | ssh example-user@123.123.123.123 'cat - >> ~/.ssh/authorized_keys'
(at server) sudo chmod 600 ~/.ssh/authorized_keys

这样,我们就可以使用密钥进行免密码SSH远程访问了。

设置SSH别名登陆

使用vim编辑如下文件

(at local) vim ~/.ssh/config

在该文件中添加如下的内容

Host example-server
HostName 123.123.123.123
User example-user
IdentityFile ~/.ssh/id_rsa

这样,我们就可以通过别名快速访问远程服务器了

(at local) ssh example-server

使用SSH反向隧道实现内网穿透

有的时候,我们的服务器可能会位于NAT之后,通过路由器连接互联网,没有公网IP地址。

这样,我们就没有办法直接使用如上的方式进行SSH了。

通过云服务器建立SSH反向隧道,进行端口转发,可以很好地解决这个问题。

服务器配置

代号 公网IP 用户名 备注
local - - 本地主机
server 无 example-user 目标服务器,无公网IP地址
cloud 123.123.255.255 cloud-user 用公网IP的主机,一般使用云服务器

使用到的SSH参数

反向代理 ssh -fCNR

正向代理 ssh -fCNL

参数解释:

-f 后台执行ssh指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
-L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
-p 指定远程主机的端口

在每个终端上进行的操作

在目标服务器上执行:

(at server) autossh -p 22 -M 6777 -NR '*:6766:localhost:22' cloud-user@123.123.255.255 -f

在云服务器上修改如下文件

(at cloud) sudo vim /etc/ssh/sshd_config

将GatewayPorts改为yes

在本地主机上,就可以用如下方式访问目标服务器

(at local) ssh -p 6766 example-user@123.123.255.255

源文件

参考文献

ukeyim: ssh反向隧道实现端口转发(需要公网server)

Linux魔法师: SSH无密码登录:只需两个简单步骤 (Linux)

kelvv: 忘记ip地址,用ssh别名登陆

远程SSH服务使用指南的更多相关文章

  1. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  2. [SSH服务]——SSH详解、常用的远程连接工具

    在总结ssh原理前,我先做了一个ssh过程的实验 首先我搭建了这样一个实验环境: (1) SSH Server:10.0.10.198 (2) SSH Client:10.0.10.158 在Serv ...

  3. 为Ubuntu配置ssh服务 方便远程登陆

    Ubuntu系统必须开启ssh服务后,XP或者其他的主机才可以远程登陆到Ubuntu系统. 1,安装软件包,执行sudo apt-get install openssh-server Ubuntu缺省 ...

  4. linux下SSH远程连接服务慢解决方案

    1.适用命令及方案如下:[远程连接及执行命令]ssh -p22root@10.0.0.19ssh -p22 root@10.0.0.19 /sbin/ifconfig[远程拷贝:推送及拉取]scp - ...

  5. 如何在ubuntu开启ssh服务-使 SecureCRT远程登录

    不少人在第一次使用ubuntu系统的时候,用了很多种方法均没有办法开启SSH服务,ubuntu和其它的linux系统有所区别,因为在ubuntu下,service  sshd  restart  之类 ...

  6. Ubuntu 开启SSH服务以及有关设置:安装,指定端口号、免密登录、远程拷贝

    本文所用系统为 Ubuntu 18.04   什么是SSH?     简单说,SSH是一种网络协议,用于计算机之间的加密登录.全名为:安全外壳协议.为Secure Shell的缩写.SSH为建立在应用 ...

  7. 五.ssh远程管理服务

    01. 远程管理服务知识介绍 1) SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: ...

  8. .Net开源myrtille远程连接服务(支持SSH)

    今天在博客园首页,无意中看到一篇文章(https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md),于是对 ...

  9. Linux服务器开启ssh服务,实现ssh远程登陆!

    最近在学linux,使用ssh远程登陆linux,记录下来! 首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/s ...

随机推荐

  1. css mix-blend-mode 颜色滤镜混合模式

    CSS3混合模式种类 在CSS3混合模式中,目前仅有16种:normal,multiply,screen,overlay,darken,lighten,color-dodge,color-burn,h ...

  2. ES6 新特性(笔记)

    1.定义变量     let         a).块作用域 , 不同于var的函数作用域         b).不可以重复定义同一个变量名           注:              {} ...

  3. C#获取刚插入的数据的id

    在开发程序中我们经常会遇到两个表或多个表关联同时插入数据的需求. 那么我们刚给主表插入一条数据,接着给副表插入数据时其中一个字段要存储与主表关联的id,那么我们该怎么获取刚插入的那条数据的id呢?   ...

  4. MVC学生管理系统-阶段IV(修改学生信息)

    项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架, 学生列表显示  请看阶段一文章 添加学生信息 ...

  5. C# 添加Log文件、记录Log

    其实在平时的开发过程中都是不怎么写log的,觉得在debug中能看得一清二楚.同事小姐姐前辈,一直就我不写log进行批判,但是我从来不改,哈哈.也算是遇到报应了,在最近一个工程里,本地调试一切正常,到 ...

  6. Django ORM多表查询练习

    ORM多表查询 创建表结构: from django.db import models # 创建表结构 # Create your models here. class Class_grade(mod ...

  7. (排序)P1177 【模板】快速排序

    题解: 这道题用传统快排(如下所示)的结果就是最后三个点TLE: 如果永远取第一个元素作为枢轴的话,在数组已经有序的情况下每次划分都将得到最坏的结果,时间复杂度退化为O(n^2).因为其中一个子序列每 ...

  8. opencv3。4安装出错

    https://www.samontab.com/web/2017/06/installing-opencv-3-2-0-with-contrib-modules-in-ubuntu-16-04-lt ...

  9. h5-transform-3d

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Intellij IDEA破解方法

    1.破解(参考网站) http://idea.lanyus.com/ 2. Intellij idea使用教程 https://github.com/tengj/IntelliJ-IDEA-Tutor ...