远程SSH服务使用指南
| Author | |
|---|---|
| Yaoyao Liu | yaoyaoliu@msn.com |
本文所有教程以ubuntu为例,对其他unix内核系统如Debian、CentOS、macOS等也适用。
目录
安装并开启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)
远程SSH服务使用指南的更多相关文章
- Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)
第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...
- [SSH服务]——SSH详解、常用的远程连接工具
在总结ssh原理前,我先做了一个ssh过程的实验 首先我搭建了这样一个实验环境: (1) SSH Server:10.0.10.198 (2) SSH Client:10.0.10.158 在Serv ...
- 为Ubuntu配置ssh服务 方便远程登陆
Ubuntu系统必须开启ssh服务后,XP或者其他的主机才可以远程登陆到Ubuntu系统. 1,安装软件包,执行sudo apt-get install openssh-server Ubuntu缺省 ...
- linux下SSH远程连接服务慢解决方案
1.适用命令及方案如下:[远程连接及执行命令]ssh -p22root@10.0.0.19ssh -p22 root@10.0.0.19 /sbin/ifconfig[远程拷贝:推送及拉取]scp - ...
- 如何在ubuntu开启ssh服务-使 SecureCRT远程登录
不少人在第一次使用ubuntu系统的时候,用了很多种方法均没有办法开启SSH服务,ubuntu和其它的linux系统有所区别,因为在ubuntu下,service sshd restart 之类 ...
- Ubuntu 开启SSH服务以及有关设置:安装,指定端口号、免密登录、远程拷贝
本文所用系统为 Ubuntu 18.04 什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录.全名为:安全外壳协议.为Secure Shell的缩写.SSH为建立在应用 ...
- 五.ssh远程管理服务
01. 远程管理服务知识介绍 1) SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: ...
- .Net开源myrtille远程连接服务(支持SSH)
今天在博客园首页,无意中看到一篇文章(https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md),于是对 ...
- Linux服务器开启ssh服务,实现ssh远程登陆!
最近在学linux,使用ssh远程登陆linux,记录下来! 首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/s ...
随机推荐
- ACM-单词接龙
题目描述:单词接龙 问题描述:单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们己知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙" 中出现 ...
- 修改element-ui里table中悬浮框中三角号的颜色及透明度设置
.el-tooltip__popper,.el-tooltip__popper.is-dark{background:rgba(0,0,0,0.6) !important;} .el-tooltip_ ...
- selenium2Library报错: Unexpected error launching Internet Explorer. Browser zoom level was set to 119%. It should be set to 100%
Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: Unexpected ...
- 基础语法-选择结构switch
基础语法-选择结构switch 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Switch语句特点 switch语句选择的类型在jdk1.6只支持四种:byte,short,i ...
- jQuery表格隔行换色和全选的实现
1.下载jQuery,并导入:https://blog.csdn.net/weixin_44718300/article/details/88746796 2.代码实现: <!DOCTYPE h ...
- CSS position定位属性
css中的position属性是用于设置元素位置的定位方式 它有以下几种取值: static:默认定位方式,子容器在父容器中按照默认顺序进行摆放 absolute:绝对定位,元素不占据父容器空间,相当 ...
- python人脸识别项目face-recognition
该项目基于Github上面的开源项目人脸识别face-recognition,主要是对图像和视频中的人脸进行识别,在开源项目给出的例子基础上对视频人脸识别的KNN算法进行了实现. 0x1 工程项目结构 ...
- Android群英传神兵利器读书笔记——第二章:版本控制神器——Git
本人一直是徐医生的真爱粉,由于参加比赛耽误了8天,导致更新得有点慢,大家见谅 2.1 Git的前世今生 Git是什么 Git安装与配置 2.2 创建Git仓库 Git init Git clone 2 ...
- 2,The AudioContext was not allowed to start.
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on t ...
- h5-多列布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...