Ubuntu系统管理 —— 使用SSH及SCP实现远程登陆与数据传输
文章目录
- SSH
- SSH Server 的安装
- 通过指定端口连接远程服务
- 远程免密登陆
- 生成公钥
- 把公钥发送给SSH服务器
- SCP
- 将数据从本地传输至远程服务器
- 将数据从远程服务器拉取到本地
- 指定端口方法
SSH
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH1。
SSH Server 的安装
在Windows平台,无论当作SSH服务器或客户端,一般情况都是需要依赖第三方工具,如果有需要假设服务器的朋友,可以参考这篇文章。 而通常我们使用的SSH服务器,一般是针对Linux服务而言的。
我平时用Debian、Ubuntu这类系统比较多,所以对于Ubuntu来说,安装SSH服务,可以执行下述命令:
$ sudo apt install openssh-server
对于现在Ubuntu 18.04以上版本来说,已经不需要在安装后编辑相关配置文件,但是如果需要禁止root权限登陆的话,那么需要在 /etc/ssh/sshd_config 中把 「PermitRootLogin」 从NO改为YES即可,而至于其他,比如修改默认的22端口,如果没什么特别的理由,这样会导致很多基于22端口通信的服务出现异常,比如GIT。
通过指定端口连接远程服务
通常Linux系统都是作为服务器,而大多数相信看我文章的朋友,大概使用云服务器的机会多过真物理机的机会。有时候因为路由器或者交换机端口映射的原因,又或者为了绕开公网对22端口的限制,或者虚拟专用网络的原因,你能使用到的服务器通常SSH的可访问是其他的端口号,比如1121,3348等。
而如果执行
$ ssh user@remote.server.ip.or.name.com
多会提示远程服务无法访问,所以这个时候我们就可以通过「-p」这个指令,显式的指定访问端口,例如:
$ ssh user@remote.server.ip.or.name.com -p 1128
远程免密登陆
远程免密登陆,通常是一种比较省事的操作,因为每次执行ssh登陆指令,都会被要求输入密码,所以对于懒人来说,我们可以通过「ssh-copy-id -i」这个指令,把本地计算机的公钥部署到SSH服务器上,以此达成免密登陆。
至于怎么做呢,首先
生成公钥
我们在本地,首先执行
$ ssh-keygen -t rsa
生成用RSA加密的公私钥。
把公钥发送给SSH服务器
加密钥匙生成完毕后,我们需要把公钥发送给SSH服务器,主要执行下述指令
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote.server.ip.or.name.com
输入SSH登陆密码后,就可以免密正常登陆了。
SCP
Linux scp 命令用于 Linux 之间复制文件和目录。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版2。
将数据从本地传输至远程服务器
数据发送到远程设备上,一般有FTP、HTTP等协议,而基于SSH协议传输数据的SCP命令也是我们可以使用的重要工具。
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
如果需要一次性把一个文件夹的数据都发送给远程服务器,就需要执行下述指令:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
比如,我们要把本地的代码,上传给服务器,然后在服务器上运行或者部署,就可以这样
$ scp -r ~/Desktop/SourceDir user@remote.server.ip.or.name.com:~/Desktop
将数据从远程服务器拉取到本地
scp除了可以把数据从本地上传到远程服务器,也可以反过来,把远程服务器的文件拉取到本地。
$ scp -r user@remote.server.ip.or.name.com:~/Desktop/Dir ~/Downloads
「-r」这个指令表示递归,如果只是拉取一个文件,就不需要了。
指定端口方法
同样,我们也存在着远程服务器SSH端口不在22号的问题,所以需要使用「-p」,指定远程设备的端口号。这样当我们希望把数据推送到远程时,就可以这样执行:
$ scp -p 1121 -r ~/Desktop/Data/ user@remote.server.ip.or.name.com:~/Desktop
执行拉取命令也是一样的
$ scp -p 1121 -r user@remote.server.ip.or.name.com:~/Desktop ./
https://baike.baidu.com/item/ssh/10407?fr=aladdin ↩︎
https://www.runoob.com/linux/linux-comm-scp.html ↩︎
Ubuntu系统管理 —— 使用SSH及SCP实现远程登陆与数据传输相关推荐
- Ubuntu下使用SSH 命令用于登录远程桌面
Ubuntu下使用SSH 命令用于登录远程桌面 问题描述 工作经常需要在一台电脑(本地主机)上写代码,另一台电脑(服务器,计算力强)上进行训练,两台电脑上都安装的是Ubuntu18.04,为了在loc ...
- linux下ssh、scp无密钥登陆方法
一:双方都是root用户登陆方法 A为本地主机(即用于控制其他主机的机器) B为远程主机(即被控制的机器server),假如ip为172.19.60.53: A和B的系统都是linux 在A上运行命令 ...
- Perl的Net::SSH::Perl模块实现远程登陆ssh
执行cpan命令安装模 cpan install Net::SSH::Perl 选择SSH版本,直接默认即可 选择使用的加密方式,也是默认 默认回车同意安装 接下来你会看见很多地方让你选择yes或者是 ...
- Parallels虚拟机kali linux 启动ssh服务 容许root远程登陆
# vim /etc/ssh/sshd_config 启动ssh服务,开机启动ssh # update-rc.d ssh enable 清空known_hosts文件中的内容,再重新连接 vim /U ...
- Linux运维:Shell脚本实现ssh免密登录远程服务器
LInux系统日常运维过程中,经常需要在本地运行脚本执行对远程主机的命令,正常情况下,ssh登录远程服务器时会提示输入密码,这会影响到脚本的自动执行(因为shell脚本中没有自动填充密码的命令).有三 ...
- 远程登陆之SSH的简单用法及命令
SSH简单使用 SSH的安装 启动服务器的SSH服务 SSH远程登陆 口令登陆 公钥登陆 配置别名 传输文件 SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现.OpenSSH是一种免费开源 ...
- 远程登陆协议SSH和talnet
SSH和talnet是远程登陆协议.这两种协议都是基于客户端和服务器的思想. 1.SSH (secure shell外壳保护协议)是建立在应用层和传输层上的安全协议,可以有效防止远程管理过程中的信息泄 ...
- 如何远程登陆Linux服务器
01.SSH介绍 ssh是专门为远程登陆提供安全的协议,SSH的默认端口号为22 终端命令组成: ssh [-p port] user@remote port是SSH 的端口号,默认值22 user指 ...
- 虚拟机ubuntu安装ssh服务器,经过Xshell远程链接虚拟机VMVARE中的Ubuntu
本文将讲解如何经过Xshell远程链接虚拟机中的Ubuntu,从而没必要主系统和虚拟机来回切换.php 1. 下载并安装Xshell 先下载并安装合适版本的Xshell rj.baidu.com/so ...
最新文章
- TorchScript的简介以及项目踩坑
- linux内核 asmlinkage宏
- sicily 1082. MANAGER
- Redis String 类型操作及常用命令
- 7-5 图形继承与多态 (50 分)
- 统一变更域本地管理员密码
- delphi2010完美破解方法
- Java发送HttpRequest
- 新人如何聪明的学习计算机网络
- 淘宝打单发货API,淘宝打单发货接口
- 测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
- TypeScript - 函数
- 短视频的素材在哪里找呢?推荐给你一个好办法
- 流氓软件与流氓系统的清理故事
- 目标跟踪数据集GOT-10k的配置
- 直流输电模型基于pscad仿真软件的3端直流输电模型
- 通过集成第三方IM实现聊天应用
- 为什么iPhone通常比Android具有更好的音质?
- 学习笔记-Matlab算法篇-规划算法
- 在Microsoft Office Word 或者WPS中插入代码实现色彩高亮和保持原有格式
热门文章
- QTcpSocket使用过程中的一些问题记录
- 如何甄选出一个优秀的软件供应商?by彭文华
- HDU2058 The sum problem(数学问题)
- 1000句英语经典口语(10)
- Foxmail管理多个电子邮箱
- Protobuf报错CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
- 双X轴的Echarts图
- [python3][题解]拖拉机
- 怎么更换vscode背景图,放入自己喜欢的图片
- android xposed软重启,Xposed插件安装更新免重启手机方案